added Haskell translation of types