Algebraic Effects

 

Algebraic effect intros and literature

Algebraic effects

Eff

Work by Matija Pretnar and Andrej Bauer

Tutorial paper

OPLSS course by Andrej Bauer

All sorts of implementation

Handlers in Action (focused on Haskell but also has racket, SML, OCaml implementation)

Richer Type systems (Frank): Do be do be do

Comparison to Monads

Monad transformers and modular algebraic effects: what binds them together

Recent papers

WasmFX (typed continuation proposal for wasm’s exception handling feature). [Wasm Research Day 2023 talk], the 2022 talk has no recording but there are [slides and code] [OOPSLA 23 paper]

Koka-lang [PLDI24 paper]

Delimited Continuations

Now in Scala/Haskell/OCaml

Ken Shan did a lot of work on inter-defining control operators

Questions

In Effect Handlers via Generalised Continuations (JFP 20), they claimed catamorphism <-> deep handlers, mutumorphisms <-> shallow handlers. How to interpret this? (Do I really know case-splits and folds?)

How to think of shift0/reset0 as closest to algebraic effect handlers? On the Expressive Power of User-Defined Effects seems to give a straightforward translation from shift0/reset0 to effect handlers.

(More to come…)