2018
DOI: 10.4204/eptcs.285.2
|View full text |Cite
|
Sign up to set email alerts
|

Eff Directly in OCaml

Abstract: The language Eff is an OCaml-like language serving as a prototype implementation of the theory of algebraic effects, intended for experimentation with algebraic effects on a large scale.We present the embedding of Eff into OCaml, using the library of delimited continuations or the multicore OCaml branch. We demonstrate the correctness of the embedding denotationally, relying on the tagless-final-style interpreter-based denotational semantics, including the novel, direct denotational semantics of multi-prompt d… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
31
0

Year Published

2018
2018
2022
2022

Publication Types

Select...
5
1

Relationship

0
6

Authors

Journals

citations
Cited by 23 publications
(31 citation statements)
references
References 30 publications
0
31
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%
See 4 more Smart Citations
“…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%
“…We implement the effect handler library on top of multi-prompt delimited continuations as defined in interface DelimitedControl . While the implementation of effect handlers in terms of multi-prompt delimited continuations is not novel [Kiselyov and Sivaramakrishnan 2016], choosing Java as the target language is and poses new challenges like integrating effect handlers with mutable state and designing an API that only uses interfaces and generics for typing. However, it also opens new opportunities like using subtyping and inheritance for handler reuse.…”
Section: Overviewmentioning
confidence: 99%
See 3 more Smart Citations