[Haskell-beginners] Typeclasses and generic types