2017
DOI: 10.1145/3093333.3009872
|View full text |Cite
|
Sign up to set email alerts
|

Type directed compilation of row-typed algebraic effects

Abstract: Algebraic effect handlers, introduced by Plotkin and Power in 2002, are recently gaining in popularity as a purely functional approach to modeling effects. In this article, we give a full overview of practical algebraic effects in the context of a compiled implementation in the Koka language. In particular, we show how algebraic effects generalize over common constructs like exception handling, state, iterators and async-await. We give an effective ty… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
85
0

Year Published

2018
2018
2022
2022

Publication Types

Select...
5
2

Relationship

0
7

Authors

Journals

citations
Cited by 50 publications
(85 citation statements)
references
References 37 publications
0
85
0
Order By: Relevance
“…Existing implementations of libraries and languages for (algebraic) effect handlers are either translations to a high level language or involve a custom runtime implementation. High level implementations translate effect handlers into delimited continuations [Brachthäuser and Schuster 2017;Kammar et al 2013;Kiselyov and Sivaramakrishnan 2016], free monads [Kiselyov and Ishii 2015] or perform a source to source CPS translation into another high-level language Leijen 2017c]. Other implementations require a custom runtime that supports stack manipulation [Bauer and Pretnar 2015;Dolan et al 2017] or setjump / longjump [Leijen 2017a].…”
Section: Discussion and Related Workmentioning
confidence: 99%
“…Existing implementations of libraries and languages for (algebraic) effect handlers are either translations to a high level language or involve a custom runtime implementation. High level implementations translate effect handlers into delimited continuations [Brachthäuser and Schuster 2017;Kammar et al 2013;Kiselyov and Sivaramakrishnan 2016], free monads [Kiselyov and Ishii 2015] or perform a source to source CPS translation into another high-level language Leijen 2017c]. Other implementations require a custom runtime that supports stack manipulation [Bauer and Pretnar 2015;Dolan et al 2017] or setjump / longjump [Leijen 2017a].…”
Section: Discussion and Related Workmentioning
confidence: 99%
“…In addition, it features native support for algebraic effects, effect handlers and row-based effect polymorphism. λ cart is similar to Koka [Leijen 2017b], whereas the presentation borrows heavily from Biernacki et al [2018]. That is, we employ explicit type/effect abstraction and subtyping.…”
Section: Core Language and Data Typesmentioning
confidence: 99%
“…Similarly to managed exceptions, a command invocation com v shifts the control flow to the currently innermost handler with the capability to handle com. Just as Leijen [2017b], we express this by restricting the evaluation context X com , i.e., evaluation may focus under a handler application only if h does not handle com.…”
Section: Algebraic Effects and Handlersmentioning
confidence: 99%
See 2 more Smart Citations