[Haskell-beginners] Why is the type constraint different from signature?