[Haskell-beginners] Why are the types of the result different?