A bit more Haskell data types and type constructors