042: showpair.hs で context reduction, Show (a, b) 問題

↑up

概要

Show クラスの扱いまわりをまともにしていく過程(参照:017)で、 sample121, 122 が動かなくなってしまった。Show (a, b) に対応していないため。 それぞれ showpair, showpair2 として testcases に格下げ。

調査ログ

2020-04-27 (Mon)

showpair, showpair2 (2の方は、今日なかみを変えた)ともに通る状態にまでした。 (各々 sample165, 166)

ListTy 同様、tuple も TupleTy という特別な抽象構文で parse されてくるので、 Rename も特殊パターンになった。一般の型インスタンスについては別途テストが必要。

また、instance (Show a, Show b) => Show (a, b) ... のように、 コンテキスト (Show a, Show b) の出現順と、型 Show (a, b) の出現順が同じであることに 依存した実装になっている点については要対策だが、これは別 issue として分離したい。

そういうわけで、本件はクローズ。