[Haskell-beginners] Trying to understand function types eg iterate (a -> a)