Monad transformers are good, actually
summary
Shows that stacking concrete transformers (MaybeT, StateT, ReaderT, WriterT, ExceptT) simplifies real code: readInt/readThreeInts becomes trivial by wrapping with runMaybeT and binding plain Ints, parsers map to StateT over list and can be auto-derived via deriving via, and base-monad actions are embedded using lift. Compares transformers vs MTL (auto-lifting classes), warns not to layer ExceptT/StateT/WriterT over IO for performance, notes listT in transformers was historically wrong and points to correct streaming implementations.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 1:03Monad transformers misunderstood
- 1:45Motivating MaybeT
- 11:17Monad transformer basics
- 20:31Common monad transformers
- 38:13Transformers vs MTL
- 54:12Misconceptions on transformers
- 1:05:16Q&A
related talks
47mMonad transformers down to earth
24mUsing Monad Transformers without understanding them
34mMonad Transformer State
44mIO monad & Error management: From Exceptions to Cats MTL
32mExtending your HTTP library with monad transformers
26mUP YOUR MTL GAME WITH CLASSY OPTICS
38mA roadtrip with monads: from MTL, through tagless, to BIO
45mHOW I UNDERSTOOD MONAD TRANSFORMERS
