[Haskell] Trying to get a Composite design pattern to work