Abstract
Plotkin and Pretnar's handlers for algebraic effects occupy a sweet spot in the design space of abstractions for effectful computation. By separating effect signatures from their implementation, algebraic effects provide a high degree of modularity, allowing programmers to express effectful programs independently of the concrete interpretation of their effects. A handler is an interpretation of the effects of an algebraic computation. The handler abstraction adapts well to multiple settings: pure or impure, strict or lazy, static types or dynamic types. This is a position paper whose main aim is to popularise the handler abstraction. We give a gentle introduction to its use, a collection of illustrative examples, and a straightforward operational semantics. We describe our Haskell implementation of handlers in detail, outline the ideas behind our OCaml, SML, and Racket implementations, and present experimental results comparing handlers with existing code.
Original language | English |
---|---|
Title of host publication | ICFP '13: Proceedings of the 18th ACM SIGPLAN international conference on Functional programming |
Publisher | Association for Computing Machinery |
Pages | 145-158 |
Number of pages | 14 |
ISBN (Print) | 9781450323260 |
DOIs | |
Publication status | Published - Sept 2013 |
Event | 18th ACM SIGPLAN International Conference on Functional Programming 2013 - Boston, MA, United States Duration: 25 Sept 2013 → 27 Sept 2013 |
Conference
Conference | 18th ACM SIGPLAN International Conference on Functional Programming 2013 |
---|---|
Abbreviated title | ICFP 2013 |
Country/Territory | United States |
City | Boston, MA |
Period | 25/09/13 → 27/09/13 |
Keywords
- Algebraic effects
- Continuations
- Effect handlers
- Effect typing
- Haskell
- Modularity
- Monads
ASJC Scopus subject areas
- Software