Show クラスの扱いまわりをまともにしていく過程(参照:017)で、 sample121, 122 が動かなくなってしまった。Show (a, b) に対応していないため。 それぞれ showpair, showpair2 として testcases に格下げ。
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 として分離したい。
そういうわけで、本件はクローズ。