I'm studying control operators at a university and writing TypeScript and Haskell at work and OCaml, Haskell, Scala, Lua as hobbies.
My interests are formalizing syntax and semantics, optimizing, and implementing DSL and language processing systems.
Algebraic effects and handlers are an emerging new feature to model effectful computations and attract attention not only from researchers but also from programmers.
They are implemented in various ways as part of compilers, interpreters, or as libraries.
We present a direct embedding of one-shot algebraic effects and handlers in a language which has asymmetric coroutines.
The key observation is that, by restricting the use of continuations to be one-shot, we obtain a simple and sufficiently general implementation via coroutines, which are available in many modern programming languages.
We have implemented our embedding as a library in Lua and Ruby, which allows one to write effectful programs in a modular way using algebraic effects and handlers.