[Haskell-cafe] Why this doesn't type checked