liveBook · Manning

Monad transformer

A monad transformer is a parameterized construction that adds one monad’s computational effects to another while preserving monadic composition.

How 2 Manning books explain it

Functional Design and Architecture: Examples in Haskell

A monad transformer is a type-level abstraction that adds one monad's effects to another monad.

How it is used
Combines pure state handling with IO or other monadic capabilities in stateful application scripts.
How deep it goes
Works through StateT stack construction, lift operations, nested contexts, runners, and tests; defers broader transformer mechanics to appendixes.
Examples
Uses Minesweeper board and score stacks, reveal-cell console output, stack tests, and spaceship-control scripting.
What you can do after
Apply it via StateT to combine state with IO, lift underlying actions, run layered computations, and test resulting state.

Read how Functional Design and Architecture: Examples in Haskell explains monad transformer →

Learn Haskell by Example

A monad transformer is a type constructor that augments an underlying monad with additional computational effects while preserving monadic composition.

How it is used
Structures a directory-synchronization application around configuration access, state, accumulated output, and IO.
How deep it goes
Explains transformer roles, ReaderT types, environment access, and lifting, while stopping short of detailed transformer stacking mechanics.
Examples
Uses a file-synchronization Config, a ReaderT Config IO application, ask, liftIO, and runReaderT.
What you can do after
Build effectful application actions that read configuration and perform IO without manually threading environment values.

Read how Learn Haskell by Example explains monad transformer →

Related concepts

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.