[Haskell-cafe] powerful type checking & false expectations that a program is correct