型変数の比較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 が返ってきます.