[Haskell-cafe] How to match on such type