Data structures described in Haskell