let
他の表現の中で使うことができます。
foo n = (let a = True in (\x -> a)) 3
foo' n | n == 1 = let a = True in a
| n /= 1 = False
しかし、私は同じことをすることはできませんwhere
foo n = ((\x -> a) where a = True) 3
foo' n | n == 1 = a where a = True
| n /= 1 = False
1:20:入力`where'の解析エラー
Haskellでは本当に不可能ですか、それとも私の間違いですか?