@hackage MonadCompose0.8.4.0

Methods for composing monads.

Methods for composing monads.

The IO monad transformer solves the problem of combining two IO-performing monads, so that neither one needs to provide a MonadIO interface and both can be transformed separately.

A monad transformer can transform another monad, but if you have two monads both lacking a transformer, you can define an extended distributive law which allows a monad to arise - see Control.Monad.PlusMonad. This is an alternate solution to the same problem.