[Haskell-cafe] subclasses and classes with same type in instance