Revisiting the Evolution of Effects (Invited Talk)
summary
Traces the technical line from monads through monad transformers to algebraic and higher‑order effects, arguing concrete tradeoffs: monads sequence effects but lack modularity, monad transformers let you stack effects but require painful boilerplate and ordering decisions, algebraic effects with handlers regain extensibility and give a clean DSL-like syntax for operations, higher-order/scoped effects extend expressivity to capture resource scoping and continuations that first‑order handlers cannot. Examples include Haskell’s IO/monad history, free‑monad encodings, and handler implementations; comparisons emphasize what each approach can and cannot express.
AI-written summary · about
chapters (6)
- 0:00Introduction
- 1:51Functional vs imperative origins
- 12:43Church and McCarthy’s languages
- 23:58Denotative programming
- 24:19Monads history
- 39:43Monads in Haskell
related talks
17mHefty Algebras: Modular Elaboration of Higher-Order Algebraic Effects
15mLatent Effects for Reusable Language Components
15mEfficient Compilation of Algebraic Effect Handlers
21mEffectful Lenses: There and Back with Different Monads
51mEffects: to be or not to be?
15mEffect Handlers, Evidently
19mAssociated Effects: Flexible Abstractions for Effectful Programming
15mHandling Bidirectional Control Flow
