型変数の比較2
http://d.hatena.ne.jp/keigoi/20090709/1247155626 の続き.この話は無駄にUpdateとかの型レを使っていてややこしかったです.
ここで紹介したコードを ghciでロードして,次を入力すればわかります:
ghci> :t type'eq undefined undefined type'eq undefined undefined :: HFalse ghci> :t \x -> type'eq x x \x -> type'eq x x :: x -> HTrue
前者は, 1こめの undefined と 2こめの undefined の型変数が違うので TypeEqという型レで HFalse と計算されます.
一方後者は,同じ変数は同じ型変数をもつので HTrue が返ってきます.