Research Papers
The Effekt language is developed by members of the effects research team at the University of Tübingen. For a detailed overview of our papers, please visit:
Make also sure to look at Language Evolution for a summary of the changes since the publication of each paper.
Language Design
Regarding the language design, there are two main references:
“Effects as Capabilities: Effect Handlers and Lightweight Effect Polymorphisms”.
Jonathan Immanuel Brachthäuser, Philipp Schuster, and Klaus Ostermann. 2020.
In Proc. ACM Program. Lang., 4 (OOPSLA), Article 126 (ACM, Extended Techreport).
“Effects, Capabilities, and Boxes: from scope-based reasoning to type-based reasoning and back”.
Jonathan Immanuel Brachthäuser, Philipp Schuster, Edward Lee, and Aleksander Boruch-Gruszecki.
In Proc. ACM Program. Lang., 6 (OOPSLA), Article 76 (ACM, Extended Techreport)
Compilation of Effect Handlers
“From Capabilities to Regions: Enabling Efficient Compilation of Lexical Effect Handlers”.
Marius Müller, Philipp Schuster, Jonathan Lindegaard Starup, Klaus Ostermann, and Jonathan Immanuel Brachthäuser. 2023. In Proc. ACM Program. Lang., 7 (OOPSLA2), Article 225. (Techreport, ACM)
“A Typed Continuation-Passing Translation for Lexical Effect Handlers”.
Philipp Schuster, Jonathan Immanuel Brachthäuser, Marius Müller, and Klaus Ostermann.
In Proceedings of the International Conference on Programming Language Design and Implementation (PLDI) 2022. (Techreport, ACM)
“Region-based Resource Management and Lexical Exception Handlers in Continuation-Passing Style”.
Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann.
In Proceedings of the European Symposium on Programming (ESOP 2022). (Techreport, Springer)
“Capability-Passing Style for Zero-Cost Effect Handlers”.
Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann.
In Proceedings of the International Conference on Functional Programming (ICFP 2020). (Techreport, ACM)
Other Related Work
The language is the result of several developments. In particular, it is the first language to combine a second-class type-system with advanced control effects. In particular, we compile Effekt programs to capability-passing style, using a monadic implementation of delimited control.
You can read more about the language, its predecessors, and important technical details in the following papers, which are ordered by relevance to the Effekt language. We are happy to share author-copies on request.
“Effekt: Capability-Passing for Type- and Effect-Safe, Extensible Effect Handlers in Scala”.
Jonathan Immanuel Brachthäuser, Philipp Schuster, and Klaus Ostermann.
Journal of Functional Programming (JFP 2020). (PDF)
“Effekt: Extensible Algebraic Effects in Scala (Short Paper)”. Jonathan Immanuel Brachthäuser and Philipp Schuster.
In Proceedings of the 8th ACM SIGPLAN International Symposium on Scala (SCALA 2017).
ACM, New York, NY, USA, 67-72. (PDF)
“Effect Handlers for the Masses”.
Jonathan Immanuel Brachthäuser, Philipp Schuster, and Klaus Ostermann.
In Proc. ACM Program. Lang., 2 (OOPSLA 2018): 111:1–111:27. (PDF)
“Programming with Implicit Values, Functions, and Control”.
Jonathan Immanuel Brachthäuser and Daan Leijen.
Technical Report MSR-TR-2019-7. Microsoft Research. (PDF)
“Typing, Representing, and Abstracting Control”.
Philipp Schuster and Jonathan Immanuel Brachthäuser.
In Proceedings of the 3rd ACM SIGPLAN International Workshop on Type-Driven Development (TyDe 2018).
ACM, New York, NY, USA, 14-24. (PDF)
“Effect Handlers, Evidently”.
Ningning Xie, Jonathan Immanuel Brachthäuser, Daniel Hillerström, Philipp Schuster, Daan Leijen. 2020.
In Proceedings of the International Conference on Functional Programming (2020). (PDF, ACM)
“Taming Control-flow through Linear Effect Handlers”.
Daan Leijen and Jonathan Immanuel Brachthäuser.
Accepted for presentation at the 7th ACM SIGPLAN Workshop on Higher-Order Programming with Effects (HOPE 2018).
“Towards Naturalistic EDSLs using Algebraic Effects”.
Jonathan Immanuel Brachthäuser.
Accepted for presentation at Domain-Specific Language Design and Implementation (DSLDI 2017).