[Haskell-beginners] Applicative: how <*> really works