Algebraic effect handlers offer an alternative to monads to incorporate effects in Haskell. In recent work Xie et al. show how to give semantics to effect handlers in terms of plain polymorphic lambda calculus through evidence translation. Besides giving precise semantics, this translation also allows for potentially more efficient implementations. Here we present the first implementation of this technique as a library for effect handlers in Haskell. We show how the design naturally leads to a concise effect interface and how evidence translation enables evaluating tail resumptive operations in-place. We give detailed benchmark results where our library performs well with respect to other approaches.
Fri 28 AugDisplayed time zone: Eastern Time (US & Canada) change
11:30 - 13:00
|A Graded Monad for Deadlock-Free Concurrency (Functional Pearl)
|Composing Effects into Tasks and Workflows
Yves Parès Tweag I/O, France, Jean-Philippe Bernardy University of Gothenburg, Sweden, Richard A. Eisenberg Tweag I/ODOI
|Effect Handlers in Haskell, Evidently