> Interesting. I just told GHC "let 5 = 3" and got no complaint. lazy pattern matching semantics, see: ghci -XBangPatterns Prelude> let { 0 = 1 } in 0 0 Prelude> let { ! 0 = 1 } in 0 *** Exception: <interactive>:3:7-13: Non-exhaustive patterns in pattern binding