Introduction to Algebraic Effects
summary
Algebraic effects are presented as a concrete programming model where an effect is a set of operations plus handlers that behave like resumable exceptions, using keywords such as perform/handler/try_with. The talk compares this approach to monads, argues it composes effects more cleanly and enables patterns like while/async and partial multicore support, and notes several experimental compiler forks and OCaml patches provide pragmatic but incomplete integration into toolchains like OCaml, Koka, Eff, Links and F*.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 2:14Presentation goals
- 3:39Caml by provocation
- 6:08Side effects control
- 8:57Managing effects history
- 12:52Direct vs monadic style
- 17:49Monad composition limits
- 18:10Algebraic effects intro
- 22:23Implementing effects in Caml
- 25:14Typing continuations challenges
- 26:16Algebraic effects vs free monads
- 29:20Algebraic effects definition
- 31:50Imperative constructs with effects
- 34:20Effects benefits for code
- 35:03Multicore support with effects
- 45:12Q&A
related talks
49mWhat is a (side) effect?
01h 09mLatent Effects and Handlers + Automatic Differentiation via Effects and Handlers
17mMachine Learning Primitives as Algebraic Effects
14mEffect Handlers for Choice-Based Learning
27mEffectful
29mAutomatic Differentiation via Effects and Handlers in OCaml
58mBlazing Fast, Pure Effects without Monads
01h 53mAsynchronous and Concurrent Programming in Scala Part 2
