Effects bibliography
A collection of research papers and other resources related to the theory and practice of computational effects.
Instructions
- 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.
Software
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) -
F*: an ML-like effectful dependently typed functional programming language aimed at program verification
(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) -
Scala Effekt: extensible algebraic effects with handlers in Scala
by Jonathan Brachthäuser
(www) -
shonky: a dynamically typed variant of Frank with C-like syntax
by Conor McBride
(www)
Papers
2018
-
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)
2017
-
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
(pdf) -
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)
2016
-
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)
2015
-
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)
2014
-
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)
2013
-
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)
2012
-
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
2011
-
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
2010
-
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
2009
-
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)
2008
-
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)
2007
- Combining algebraic effects with continuations (Theor. Comput. Sci. 2007)
by Martin Hyland, Paul Blain Levy, Gordon Plotkin and John Power
2006
-
Programming Monads Operationally with Unimo (ICFP 2006)
by Chuan-kai Lin -
Monadic Regions (JFP 2006)
by Matthew Fluet and J. Gregory Morrisett
2003
-
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 -
The Marriage of Effects and Monads (Trans. Comp. Logic, 2003)
by Philip Wadler and Peter Thiemann
2002
-
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
2001
-
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
2000
-
Deriving Backtracking Monad Transformers (ICFP 2000)
by Ralf Hinze -
Monads and Effects (APPSEM 2000)
by Nick Benton, John Hughes and Eugenio Moggi
1999
- Representing layered monads (POPL 1999)
by Andrzej Filinski
1995
-
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
1994
-
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
1993
-
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
1992
- The essence of functional programming (POPL 1992)
by Philip Wadler
1991
- Notions of computation and monads (Information and Computation, 93(1), 1991)
by Eugenio Moggi
(pdf)
1990
-
Comprehending Monads (Lisp and Functional Programming, 1990)
Philip Wadler -
Abstracting Control (LFP 1990)
by Olivier Danvy and Andrzej Filinski
1989
-
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
1988
-
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)
Theses and Dissertations
2017
- Enhancing a Modular Effectful Programming Language (MSc Dissertation, University of Edinburgh)
by Lukas Convent
(pdf)
2016
-
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)
2015
- Handlers for Algebraic Effects in Links (MSc Dissertation, University of Edinburgh)
by Daniel Hillerström
(pdf)
2010
- The Logic and Handling of Algebraic Effects (PhD Thesis, University of Edinburgh)
by Matija Pretnar
(pdf)