HackerPapers

arXiv:1610.09161cs.LO

On the Expressive Power of User-Defined Effects: Effect Handlers, Monadic Reflection, Delimited Control

Yannick Forster, Ohad Kammar, Sam Lindley, Matija Pretnar

Early discovery. Linked by one identifiable commenter. This paper is outside the main ranking; a mention is not an endorsement.

Abstract

We compare the expressive power of three programming abstractions for user-defined computational effects: Bauer and Pretnar's effect handlers, Filinski's monadic reflection, and delimited control without answer-type-modification. This comparison allows a precise discussion about the relative expressiveness of each programming abstraction. It also demonstrates the sensitivity of the relative expressiveness of user-defined effects to seemingly orthogonal language features. We present three calculi, one per abstraction, extending Levy's call-by-push-value. For each calculus, we present syntax, operational semantics, a natural type-and-effect system, and, for effect handlers and monadic reflection, a set-theoretic denotational semantics. We establish their basic meta-theoretic properties: safety, termination, and, where applicable, soundness and adequacy. Using Felleisen's notion of a macro translation, we show that these abstractions can macro-express each other, and show which translations preserve typeability. We use the adequate finitary set-theoretic denotational semantics for the monadic calculus to show that effect handlers cannot be macro-expressed while preserving typeability either by monadic reflection or by delimited control. We supplement our development with a mechanised Abella formalisation.

arXiv comments
Journal reference
DOI
Subjects
cs.LOLogic in Computer Science cs.PLProgramming Languages

On Hacker News

Linked by 1 identifiable commenter in 1 comment across 1 thread, from Oct 2018 to Oct 2018.

Comments linking this paper, per year.

Discussed in comments1 thread

    • You're right, the linearity restriction on the handler continuation is a peculiarity of multi-core OCaml and really more of an implementation detail. However, it is also true that you cannot encode, e.g., the continuation monad using (typed) algebraic effects. The precise…

      fmapView on HNParent context

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.