• Corpus ID: 238856770

Parallel Algebraic Effect Handlers

  title={Parallel Algebraic Effect Handlers},
  author={Ningning Xie and Daniel D. Johnson and Dougal Maclaurin and Adam Paszke},
Algebraic effects and handlers support composable and structured control-flow abstraction. However, existing designs of algebraic effects often require effects to be executed sequentially. This paper studies parallel algebraic effect handlers. In particular, we formalize _ , an untyped lambda calculus which models two key features, effect handlers and parallelizable computations, the latter of which takes the form of a for expression as inspired by the Dex programming language. We present… 

Figures from this paper


Effect handlers, evidently
It is argued one can still express all important effects, while improving reasoning about effect handlers, and it is proved full soundness and coherence of the translation into plain lambda calculus is proved.
Handlers of Algebraic Effects
An algebraic treatment of exception handlers is presented and handlers for other computational effects representable by an algebraic theory are introduced, which can be used to describe previously unrelated concepts from both theory and practice.
An Introduction to Algebraic Effects and Handlers. Invited tutorial paper
What algebraic effects are, how handlers work, an operational semantics and a type & effect system are defined, how one can reason about effects, and pointers for further reading are given.
Freer monads, more extensible effects
This work presents a rational reconstruction of extensible effects, the recently proposed alternative to monad transformers, as the confluence of efforts to make effectful computations compose, and extensively uses and promotes the new sort of `laziness', which underlies the left Kan extension.
Retrofitting effect handlers onto OCaml
This work presents a design and evaluate a full-fledged efficient implementation of effect handlers for OCaml, an industrial-strength multi-paradigm programming language, and strives to maintain the backwards compatibility and performance profile of existing Ocaml code.
Do be do be do
The design and implementation of Frank is explored, a strict functional programming language with a bidirectional effect type system designed from the ground up around a novel variant of Plotkin and Pretnar's effect handler abstraction and an exploration of future possibilities is contributed.
Algebraic Operations and Generic Effects
This work defines the notion of generic effect and shows that to give a generic effect is equivalent to giving an algebraic operation, and shows how the usual monadic semantics of the computational λ-calculus extends uniformly to incorporate generic effects.
Koka: Programming with Row Polymorphic Effect Types
This work proposes a programming model where effects are treated in a disciplined way, and where the potential side-effects of a function are apparent in its type signature, and describes a polymorphic type inference system based on Hindley-Milner style inference.
Monads for functional programming
The use of monads to structure functional programs is described and three case studies are looked at in detail how monads ease the modi cation of a simple evaluator,How monads act as the basis of a datatype of arrays subject to in place update and how monad can be used to build parsers.
Row-based effect types for database integration
We present CoreLinks, a call-by-value variant of System F with row polymorphism, row-based effect types, and implicit subkinding, which forms the basis for the Links web programming language. We