[Haskell-beginners] Need help with code duplication (types and typeclasses)