[Haskell-cafe] abstract extensible types?