[Haskell-beginners] When a return type constrained by class