[Haskell-cafe] Commutative monads vs Applicative functors