[Haskell-cafe] Representing Hierarchies with Typeclasses