>>359
変数の型が違うならエラーにしないと危険じゃないかってことね
let n = Nothing in n == (n <*> undefined) -- True
これは変数じゃなくて無引数の多相関数だからエラーじゃない

ちなみにletではなくラムダで変数束縛すれば多相にならない
(\ n -> n == (n <*> undefined)) Nothing -- エラー