[Haskell-cafe] Abstraction in data types