Monad Transformer State by Michael Snoyman


Image credit Lambda World

Thursday is the first day of Lambda World and we are thrilled to be involved by not only sponsoring but having the chance to attend for the second year running. There are so many amazing speakers but if you didn't manage to make it out to Cadiz this year then before the videos on each of the talks are posted why not check out the ones from last year. This is a really great talk from VP of engineering Michael Snoyman on Monad Transformer State. Stay posted for more talks from last year.

Monad Transformer State

Monad transformers are often used in Haskell applications to model state, capture results, and deal with explicit exceptions. In order to make these monad transformer stacks work with concurrency primitives, runtime exceptions, and more, we'll often use libraries like lifted-base, lifted-async, monad-control, and exceptions. But contrary to the expectations of many, surprising things can happen with the implicit state of our transformers. This talk will explain the problem, demonstrate where surprising behavior pops up, and recommend ways to structure your libraries and applications to sidestep the issue entirely.