Reference. Effect handlers via generalised continuations
Cite
Cited by (2)
Yarrow: Reconciling Effect Handlers and Region-Based Memory Management mathiasen-2026-yarrow
Doo bee doo bee doo convent-2020-doo
Cites 57 works (5 here)
With notes (5)
Doo bee doo bee doo convent-2020-doo
On the expressive power of user-defined effects: Effect handlers, monadic reflection, delimited control forster-2019-on
Do be do be do lindley-2017-do
Continuation Passing Style for Effect Handlers hillerstrom-2017-continuation
We present Continuation Passing Style (CPS) translations for Plotkin and Pretnar’s effect handlers with Hillerström and Lindley’s row-typed fine-grain call-by-value calculus of effect handlers as the source language. CPS translations of handlers are interesting theoretically, to explain the semantics of handlers, and also offer a practical implementation technique that does not require special support in the target language’s runtime.
We begin with a first-order CPS translation into untyped lambda calculus which manages a stack of continuations and handlers as a curried sequence of arguments. We then refine the initial CPS translation first by uncurrying it to yield a properly tail-recursive translation and second by making it higher-order in order to contract administrative redexes at translation time. We prove that the higher-order CPS translation simulates effect handler reduction. We have implemented the higher-order CPS translation as a JavaScript backend for the Links programming language.
Handlers in action kammar-2013-handlers
External (52)
- Abstracting algebraic effects (2019)
- Typed equivalence of effect handlers and delimited control (2019)
- Handle with care: Relational interpretation of algebraic effects and handlers (2018)
- Effect handlers for the masses (2018)
- Pyro: Deep Universal Probabilistic Programming (2018)
- Shallow effect handlers (2018)
- Staged generic programming (2017)
- Concurrent system programming with effect handlers (2017)
- Implementing algebraic effects in C - “monads for free in C” (2017)
- On the expressive power of user-defined effects: Effect handlers, monadic reflection, delimited control (2017)
- MSc(R) thesis (2016)
- Compiling Links effect handlers to the OCaml backend (2016)
- Eff directly in OCaml (2016)
- Fusion for free - efficient algebraic effect handlers (2015)
- Programming with algebraic effects and handlers (2015)
- Effective concurrency through algebraic effects (2015)
- Handlers for algebraic effects in Links (2015)
- In APLAS. LNCS (2012)
- Yield: Mainstream delimited continuations (2011)
- A monadic framework for delimited continuations (2007)
- In FMCO. LNCS (2006)
- In FoSSaCS. LNCS (2001)
- Monads for functional programming (1995)
- Syntactic theories and the algebra of record terms (1993)
- Compiling with Continuations (1992)
- Functional programming with bananas, lenses, envelopes and barbed wire (1991)
- Tupling and mutumorphisms (1990)
- Control operators, the SECD-machine, and the λ-calculus (1986)
- RABBIT: A compiler for SCHEME (1978)
- 10.1145/2633357.2633358
- 10.1016/j.entcs.2015.12.003
- 10.2168/lmcs-9(4:23)2013
- 10.1145/155090.155113
- 10.2307/1967631
- 10.1016/s0304-3975(02)00733-8
- 10.1145/91556.91622
- 10.1007/s10990-007-9010-4
- 10.1145/13310.13333
- 10.1145/3122975.3122977
- 10.1023/a:1020891112409
- 10.4204/eptcs.153.8
- 10.1016/0304-3975(75)90017-1
- 10.1017/s0956796820000027
- 10.1145/231379.231395
- 10.1145/2976022.2976033
- 10.1145/1291151.1291179
- 10.1017/s0960129500001535
- 10.1016/j.tcs.2012.02.025
- 10.1145/3136000.3136007
- 10.1016/s0890-5401(03)00088-9
- 10.1145/3093333.3009872
- 10.1017/s0956796897002864