[Haskell-cafe] pattern matching v. type checking