[Haskell-beginners] question on typeclasses and applicatives