A collection of research papers and other resources related to the theory and practice of computational effects.
- Pull requests welcome!
- You can edit the file directly also.
- Keep the formatting consistent with the rest.
- End a line with a double space to force a line break.
See also the Effects and handlers Rosetta stone, a comparison of how computational effects and handlers are implemented in various programming languages.
-
Eff: programming language with algebraic effects and handlers
by Andrej Bauer and Matija Pretnar
(www) -
Eff in F#: A library for programming with algebraic effects in F#
by Nick Palladinos
(www) -
Extensible effects: a Haskell library for effects
by Oleg Kiselyov
(hackage) (www) -
Frank: programming language with first-class handlers, invisible effect variables, and multihandlers
by Sam Lindley, Conor McBride, and Craig McLaughlin
(www) -
Fused effects: a Haskell library for effects
by Rob Rix
(hackage) (www) -
F*: an ML-like effectful dependently typed functional programming language aimed at program verification
(www) -
Helium: a functional programming language with effect handlers and an ML-like module system
by Dariusz Biernacki, Maciej Piróg, Piotr Polesiuk, and Filip Sieczkowski
(www) -
Idris Effects: library for algebraic effects and handlers in Idris - inspired by Eff language
(www) -
Koka: a function-oriented language with effect inference
by Daan Leijen
(www) -
Links effect handlers: an effect handlers extension for the Links web programming language
by Daniel Hillerström and Sam Lindley
(www) -
Multicore OCaml: a multicore + effect handlers extension for OCaml
by Stephen Dolan, Anil Madhavapeddy, KC Sivaramakrishnan, Leo White, and Jeremy Yallop
(www) -
Pyro: a deep universal probabilistic programming language
by Uber AI Labs
(www) -
Scala Effekt: extensible algebraic effects with handlers in Scala
by Jonathan Brachthäuser
(www) -
atnos-org/eff: extensible effects for Cats in Scala
by Eric Torreborre
(www) (github) -
shonky: a dynamically typed variant of Frank with C-like syntax
by Conor McBride
(www)
- What is algebraic about algebraic effects and handlers? (tutorial given at Dagstuhl and OPLSS)
by Andrej Bauer
(pdf)
(Videos: 1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
- Concurrent Programming with Effect Handlers (tutorial given at CUFP)
by Daniel Hillerström and KC Sivaramakrishnan
(www)
-
Typed equivalence of effect handlers and delimited control (FSCD 2019)
Maciej Piróg, Piotr Polesiuk, and Filip Sieczkowski
(pdf) -
Handling Polymorphic Algebraic Effects (ESOP 2019)
Taro Sekiyama and Atsushi Igarashi
(arxiv) -
Extended call-by-push-value: reasoning about effectful programs and evaluation order (ESOP 2019)
by Dylan McDermott and Alan Mycroft
(pdf) -
Abstracting Algebraic Effects (POPL 2019)
by Dariusz Biernacki, Maciej Piróg, Piotr Polesiuk, and Filip Sieczkowski
(acm dl) (pdf) -
Abstraction-Safe Effect Handlers via Tunneling (POPL 2019)
by Yizhou Zhang and Andrew Myers
(acm dl) (technical report)
-
Call-by-need effects via coeffects (Open Computer Science 2018)
by Dylan McDermott and Alan Mycroft
(pdf) -
Pyro: Deep Universal Probabilistic Programming
by Eli Bingham, Jonathan P. Chen, Martin Jankowiak, Fritz Obermeyer, Neeraj Pradhan, Theofanis Karaletsos, Rohit Singh, Paul Szerlip, Paul Horsfall, and Noah D. Goodman
(arvix) -
Automatic Reparameterisation in Probabilistic Programming (AABI 2018)
by Maria I. Gorinova, Dave Moore, and Matthew D. Hoffman
(pdf) -
Effect Handling for Composable Program Transformations in Edward2 (PROBPROG 2018)
by Dave Moore and Maria I. Gorinova
(arvix) -
Factorisation Systems for Logical Relations and Monadic Lifting in Type-and-effect System Semantics (MFPS 2018)
by Ohad Kammar and Dylan McDermott
(doi) -
Functional Programming for Modular Bayesian Inference (ICFP 2018)
by Adam Ścibior, Ohad Kammar, and Zoubin Ghahramani
(pdf) -
JEff: Objects for Effect (Onward 2018)
by Pablo Inostroza and Tijs van der Storm
(acm dl) -
Effect Handlers for the Masses (OOPSLA 2018)
by Jonathan Immanuel Brachthäuser, Philipp Schuster, and Klaus Ostermann
(acm dl) -
Abstract Nonsense (FARM 2018)
by Junia Gonçalves
(acm dl) -
Syntax and Semantics for Operations with Scopes (LICS 2018)
by Maciej Piróg, Tom Schrijvers, Nicolas Wu, and Mauro Jaskelioff
(pdf) -
First Class Dynamic Effect Handlers: or, Polymorphic Heaps with Dynamic Effect Handlers (TyDe 2018)
by Daan Leijen
(acm dl) -
Algebraic Effect Handlers with Resources and Deep Finalization (MSR technical report)
by Daan Leijen
(pdf) -
Shallow Effect Handlers (APLAS 2018)
by Daniel Hillerström and Sam Lindley
(pdf) -
Versatile Event Correlation with Algebraic Effects (ICFP 2018)
by Oliver Bračevac, Nada Amin, Guido Salvaneschi, Sebastian Erdweg, Patrick Eugster, and Mira Mezini
(pdf) -
Modular Verification of Programs with Effects and Effect Handlers in Coq (FM 2018)
by Thomas Letan, Yann Régis-Gianas, Pierre Chifflier, and Guillaume Hiet
(metadata, pdf) -
Explicit Effect Subtyping (ESOP 2018)
by Amr Hany Saleh, Georgios Karachalias, Matija Pretnar, and Tom Schrijvers
(pdf) (pdf with appendix) (technical report/extended version) -
Handle with Care: Relational Interpretation of Algebraic Effects and Handlers (POPL 2018)
by Dariusz Biernacki, Maciej Piróg, Piotr Polesiuk, and Filip Sieczkowski
(pdf) (Coq formalisation) -
Handling fibred algebraic effects (POPL 2018)
by Danel Ahman
(pdf)
-
Staged Generic Programming (ICFP 2017)
by Jeremy Yallop
(pdf) -
Concurrent System Programming with Effect Handlers (TFP 2017)
by Stephen Dolan, Spiros Eliopolous, Daniel Hillerström, Anil Madhavapeddy, KC Sivaramakrishnan, Leo White
(pdf) -
Handlers for Non-Monadic Computations (IFL 2017)
by Ruben P. Pieters, Tom Schrijvers, and Exequiel Rivas
(pdf) (technical report/extended version) -
Effekt: Extensible Algebraic Effects in Scala (Scala 2017)
by Jonathan Immanuel Brachthäuser and Philipp Schuster -
Efficient Compilation of Algebraic Effects and Handlers
by Matija Pretnar, Amr Hany Saleh, Axel Faes, and Tom Schrijvers
(technical report) -
Structured asynchrony with algebraic effects (TyDe 2017)
by Daan Leijen
(OpenTOC) (technical report) -
Implementing Algebraic Effects in C (or "Monads for Free in C") (APLAS 2017)
by Daan Leijen
(technical report) (GitHub) -
Continuation Passing Style for Effect Handlers (FSCD 2017)
by Daniel Hillerström, Sam Lindley, Robert Atkey, and KC Sivaramakrishnan
(pdf) -
On the expressive power of user-defined effects: Effect handlers, monadic reflection, delimited control (ICFP 2017)
by Yannick Forster, Ohad Kammar, Sam Lindley, and Matija Pretnar
(arxiv) -
Do be do be do (POPL 2017)
by Sam Lindley, Conor McBride, and Craig McLaughlin
(dblp) (arxiv) -
Type directed compilation of row-typed algebraic effects (POPL 2017)
by Daan Leijen
(dblp) -
No value restriction is needed for algebraic effects and handlers (J. Funct. Program. 2017)
by Ohad Kammar and Matija Pretnar
(dblp) (arxiv)
-
Combining Effects and Coeffects via Grading (ICFP 2016)
by Marco Gaboardi, Shin-ya Katsumata, Dominic Orchard, Flavien Breuvart, and Tarmo Uustalu
(pdf) -
Effects as Sessions, Sessions as Effects (POPL 2016)
by Dominic Orchard and Nobuko Yoshida
(pdf) -
Effect Systems Revisited -- Control-Flow Algebra and Semantics (Semantics, Logics, and Calculi 2016)
by Alan Mycroft, Dominic Orchard, and Tomas Petricek (pdf) -
Efficient Algebraic Effect Handlers for Prolog (TPLP/ICLP 2016)
by Amr Hany Saleh and Tom Schrijvers
(pdf) -
Eff Directly in OCaml (ML Workshop 2016)
by Oleg Kiselyov and KC Sivaramakrishnan
(pdf) (extended abstract) -
Compiling Links Effect Handlers to the OCaml Backend (ML Workshop 2016)
by Daniel Hillerström, Sam Lindley, and KC Sivaramakrishnan
(pdf) -
Liberating effects with rows and handlers (TyDe 2016)
by Daniel Hillerström and Sam Lindley
(pdf) (dblp) -
Dependent Types and Fibred Computational Effects (FoSSaCS 2016)
by Danel Ahman, Neil Ghani, and Gordon Plotkin
(pdf) (dblp) -
From Monads to Effects and Back (PADL 2016)
by Niki Vazou and Daan Leijen
(pdf)
-
Effective Concurrency with Algebraic Effects (OCaml Workshop 2015)
by Stephen Dolan, Leo White, KC Sivaramakrishnan, Jeremy Yallop and Anil Madhavapeddy
(pdf) -
Fixing Non-determinism (IFL 2015)
by Alexander Vandenbroucke, Tom Schrijvers, and Frank Piessens
(pdf) -
Freer monads, more extensible effects (Haskell 2015)
by Oleg Kiselyov and Hiromi Ishii
(pdf) -
Programming with Algebraic Effects and Handlers (JLAMP 2015)
by Andrej Bauer and Matija Pretnar
(arxiv) (dblp) (doi) -
An Introduction to Algebraic Effects and Handlers (MFPS 2015)
by Matija Pretnar
(dblp) (doi) (pdf) -
Fusion for Free: Efficient Algebraic Effect Handlers (MPC 2015)
by Nicolas Wu and Tom Schrijvers
(pdf) -
Interleaving data and effects (JFP 2015)
by Robert Atkey and Patricia Johann
(dblp) (doi) (pdf)
-
Algebraic Effects and Handlers in Natural Language Interpretation (NLCS 2014)
by Jiří Maršík and Maxime Amblard
(pdf) -
Algebraic effects and effect handlers for idioms and arrows (WGP 2014)
by Sam Lindley
(dblp) (doi) (pdf) -
Effect handlers in scope (Haskell 2014)
by Nicolas Wu, Tom Schrijvers and Ralf Hinze
(pdf) -
Embedding effect systems in Haskell (Haskell 2014)
by Dominic Orchard and Tomas Petricek
(pdf) -
The semantic marriage of monads and effects (extended abstract) (Unpublished, 2014)
by Dominic Orchard, Tomas Petricek and Alan Mycroft
(pdf) -
Inferring algebraic effects (LMCS 2014)
by Matija Pretnar
(arxiv) (dblp) (doi) -
An Effect System for Algebraic Effects and Handlers (LMCS 2014)
by Andrej Bauer and Matija Pretnar
(arxiv) (dblp) (doi)
-
Programming and reasoning with algebraic effects and dependent types (ICFP 2013)
by Edwin Brady
(pdf) -
The constrained-monad problem (ICFP 2013)
by Neil Sculthorpe, Jan Bracker, George Giorgidze and Andy Gill
(pdf) -
Handlers in action (ICFP 2013)
by Ohad Kammar, Sam Lindley and Nicolas Oury
(pdf) (GitHub) -
Extensible effects: an alternative to monad transformers (Haskell 2013)
by Oleg Kiselyov, Amr Sabry and Cameron Swords
(pdf) -
Handling algebraic effects (LMCS 2013)
by Gordon Plotkin and Matija Pretnar
(arxiv) (dblp) (doi)
-
The Frank Manual (2012)
by Conor McBride
(www) -
Control.Effects (2012)
by Sjoerd Visscher -
Koka: A Language with Row-Polymorphic Effect Inference (HOPE 2012)
by Daan Leijen
-
Idioms are Oblivious, Arrows are Meticulous, Monads are Promiscuous (ENTCS 2011)
by Sam Lindley, Philip Wadler and Jeremy Yallop -
Lightweight Monadic Programming in ML (ICFP 2011)
by Nikhil Swamy, Nataliya Guts, Daan Leijen and Michael Hicks
(pdf) -
Monads, zippers and views: virtualizing the monad stack (ICFP 2011)
by Tom Schrijvers and Bruno C.d.S. Oliveira -
Just Do It: Simple Monadic Equational Reasoning (ICFP 2011)
by Jeremy Gibbons and Ralf Hinze
-
Monad transformers as monoid transformers (Theor. Comp. Science 2010)
by Mauro Jaskelioff and Eugenio Moggi -
The Operational Monad Tutorial (The Monad Reader, 2010)
by Heinrich Apfelmus
-
Handlers of Algebraic Effects (ESOP 2009)
by Gordon Plotkin and Matija Pretnar
(pdf) -
Parameterised Notions of Computation (JFP 2009)
by Robert Atkey
(pdf) -
Algebras for Parameterised Monads (CALCO 2009)
by Robert Atkey
(pdf)
-
Lightweight Monadic Regions (Haskell 2008)
by Oleg Kiselyov and Chung-chieh Shan -
A Logic for Algebraic Effects (LICS 2008)
by Gordon Plotkin and Matija Pretnar
(pdf) -
What is a Categorical Model of Arrows? (MSFP 2008)
by Robert Atkey
(pdf) -
Data types a la carte (JFP 2008)
by Wouter Swierstra
(pdf)
- Combining algebraic effects with continuations (Theor. Comput. Sci. 2007)
by Martin Hyland, Paul Blain Levy, Gordon Plotkin and John Power
-
Programming Monads Operationally with Unimo (ICFP 2006)
by Chuan-kai Lin -
Monadic Regions (JFP 2006)
by Matthew Fluet and J. Gregory Morrisett
-
A Monadic Multi-stage Metalanguage (FOSSACS 2003)
by Eugenio Moggi and Sonia Fagorzi
(pdf) -
Algebraic Operations and Generic Effects (Applied categorical structures, 2003)
by Gordon D. Plotkin and John Power
(pdf) -
The Marriage of Effects and Monads (Trans. Comp. Logic, 2003)
by Philip Wadler and Peter Thiemann
-
Composing Monads Using Coproducts (ICFP 2002)
by Christoph Lüth and Neil Ghani -
Notions of computation determine monads (FoSSaCS 2002)
by Gordon D. Plotkin and John Power
-
Monadic Encapsulation of Effects: A Revised Approach (Extended Version) (JFP 2001)
by Eugenio Moggi and Amr Sabry -
Adequacy for algebraic effects (FoSSaCS 2001)
by Gordon D. Plotkin and John Power
-
Deriving Backtracking Monad Transformers (ICFP 2000)
by Ralf Hinze -
Monads and Effects (APPSEM 2000)
by Nick Benton, John Hughes and Eugenio Moggi
- Representing layered monads (POPL 1999)
by Andrzej Filinski
-
Monad Transformers and Modular Interpreters (POPL 1995)
by Sheng Liang, Paul Hudak and Mark Jones -
Semantic Lego (UMI Order No. GAX95-33546, 1995)
by David A. Espinosa -
Monads for functional programming (1995)
Philip Wadler
-
Extensible Denotational Language Specifications (TACS 1994)
by Robert Cartwright and Matthias Felleisen -
Building interpreters by transforming stratified monads (Unpublished, 1994)
by David Espinosa -
Representing monads (POPL 1994)
by Andrzej Filinski -
Building Interpreters by Composing Monads (POPL 1994)
by Guy L. Steele, Jr. -
Monads and composable continuations (J. Lisp & Symb. Comp. 1994)
by Philip Wadler
-
Imperative Functional Programming (POPL 1993)
by Simon Peyton Jones and Philip Wadler -
Combining Monads (Functional Programming, 1993)
by David J. King and Philip Wadler -
How to Compose Monads (Thinking Machines Corporation tech. report, 1993)
Guy L. Steele, Jr. -
Modular denotational semantics (Unpublished, 1993)
by David Espinosa
- The essence of functional programming (POPL 1992)
by Philip Wadler
- Notions of computation and monads (Information and Computation, 93(1), 1991)
by Eugenio Moggi
(pdf)
-
Comprehending Monads (Lisp and Functional Programming, 1990)
Philip Wadler -
Abstracting Control (LFP 1990)
by Olivier Danvy and Andrzej Filinski
-
Computational lambda-calculus and monads (LICS 1989)
by Eugenio Moggi
(pdf) -
An abstract view of programming languages (Ed. Uni. Tech Report, 1989)
by Eugenio Moggi
-
Polymorphic effect systems (POPL 1988)
by John M. Lucassen and David K. Gifford
(pdf) -
The FX-87 Interpreter (ICCL 1988)
by Pierre Jouvelot and David K. Gifford
(doi)
-
Efficient Algebraic Effect Handlers (PhD Dissertation, KU Leuven)
by Amr Hany Saleh
(pdf) -
Program Equivalence for Algebraic Effects via Modalities (MSc Dissertation, University of Oxford)
by Cristina Matache
(pdf)
-
Distributive Interaction of Algebraic Effects (PhD Thesis, University of Oxford)
by Kwok-Ho Cheung
(pdf) -
Enhancing a Modular Effectful Programming Language (MSc Dissertation, University of Edinburgh)
by Lukas Convent
(pdf)
-
Compilation of Effect Handlers and their Applications in Concurrency (MSc Dissertation, University of Edinburgh)
by Daniel Hillerström
(pdf) -
On the expressive power of effect handlers and monadic reflection (MSc Dissertation, University of Cambridge)
by Yannick Forster
(pdf)
- Handlers for Algebraic Effects in Links (MSc Dissertation, University of Edinburgh)
by Daniel Hillerström
(pdf)
- The Logic and Handling of Algebraic Effects (PhD Thesis, University of Edinburgh)
by Matija Pretnar
(pdf)