Category transformers
Haskell Community [Unofficial]
May 9, 2026
Monad stacks are successful because they allow overloading IO with magical properties, chiefly global contexts and early exit. These are preferred over argument passing and pattern matching respectively, removing both the logarithmic avalanche of upstream adjustments caused by function type changes and the annoying rightward code drift. This style of programming apes imperative languages, so it’s already familiar to most newcomers, thus job-friendly, and jobs feed back into the ecosystem.
The goal of arrows seems to be to specify computations more granularly, but that’s not a common concern, especially among those using monad stacks.
Discussion in the ATmosphere