[Haskell-cafe] Commutative monads vs Applicative functors

Ronald Guida oddron at gmail.com
Tue May 13 21:06:11 EDT 2008

I have a few questions about commutative monads and applicative functors.

>From what I have read about applicative functors, they are weaker than
monads because with a monad, I can use the results of a computation to
select between alternative future computations and their side effects,
whereas with an applicative functor, I can only select between the
results of computations, while the structure of those computations and
their side effects are fixed in advance.

But then there are commutative monads.  I'm not exactly sure what a
commutative monad is, but my understanding is that in a commutative
monad the order of side effects does not matter.

This leads me to wonder, are commutative monads still stronger than
applicative functors, or are they equivalent?

And by the way, what exactly is a commutative monad?

More information about the Haskell-Cafe mailing list