[Haskell] Help in understanding a type error involving forall and class constraints