1. Ну так да, именно так и ведет себя: GHCi> (\True -> \y -> ()) False `seq` 42 *** Exception: :21:2-18: Non-exhaustive patterns in lambda 2. Я выше писал трансляцию function binding из haskell report. Любая определенная пользователем именованная функция семантически эквивалентна (ну то есть, проще говоря, превращается при трансляции в core в)
x = \ x1 ... xk -> case (x1, ... , xk) of (p11, ... , p1k) match1
...
(pn1, ... , pnk) matchn
no subject
GHCi> (\True -> \y -> ()) False `seq` 42
*** Exception: :21:2-18: Non-exhaustive patterns in lambda
2. Я выше писал трансляцию function binding из haskell report. Любая определенная пользователем именованная функция семантически эквивалентна (ну то есть, проще говоря, превращается при трансляции в core в)