「機能依存関係の楽しみ」を読んでいました
この部分は、静的に計算される、つまりコンパイル時に実行されると言われています
data Nat = Zero | Succ Nat
three = Succ(Succ(Succ Zero)))
even Zero = True
even (Succ n) = odd n
odd Zero = False
odd (Succ n) = even n
(odd three)
しかし、静的に計算されるものはよくわかりません。また、型をチェックするためにコンパイラが計算する異常なことは何も見つかりません