[Haskell-beginners] Ensuring consistency in typeclass instances?