# Contents

## Idea

A monad transformer is a type constructor which takes a monad as an argument and returns a monad as a result. The concept is typically treated in the literature on monads in computer science.

Monad transformers generally derive from ordinary monads and allow a modular composition, so that the action on the identity monad of the associated transform $M T$ of a monad $M$ is equivalent to $M$.

This construction is sometimes viewed (see HP07, Eff) as a complication resulting from passing to monads from the setting of Lawvere theories, where any two theories may be naturally combined.

## References

• Bryan O’Sullivan, Don Stewart, and John Goerzen, Monad transformers, Chapter 18 of Real World Haskell.

• Chung-Chieh Shan, Monad transformers, blog post