[Haskell-beginners] why do classes require the type variable in type signatures?