Handling algebraic effects
From MaRDI portal
Abstract: Algebraic effects are computational effects that can be represented by an equational theory whose operations produce the effects at hand. The free model of this theory induces the expected computational monad for the corresponding effect. Algebraic effects include exceptions, state, nondeterminism, interactive input/output, and time, and their combinations. Exception handling, however, has so far received no algebraic treatment. We present such a treatment, in which each handler yields a model of the theory for exceptions, and each handling construct yields the homomorphism induced by the universal property of the free model. We further generalise exception handlers to arbitrary algebraic effects. The resulting programming construct includes many previously unrelated examples from both theory and practice, including relabelling and restriction in Milner's CCS, timeout, rollback, and stream redirection.
Recommendations
Cited in
(47)- Mac Lane's comparison theorem for the Kleisli construction formalized in Coq
- PRISM revisited: declarative implementation of a probabilistic programming language using multi-prompt delimited control
- Introducing \(\llparenthesis\lambda\rrparenthesis\), a \(\lambda \)-calculus for effectful computation
- Backtracking with cut via a distributive law and left-zero monoids
- Reversible monadic computing
- scientific article; zbMATH DE number 2087428 (Why is no real title available?)
- Asymptotic speedup via effect handlers
- Handlers in action
- When programs have to watch paint dry
- Dependent types and fibred computational effects
- Notions of bidirectional computation and entangled state monads
- Fusion for free. Efficient algebraic effect handlers
- From high to low: simulating nondeterminism and state with state
- Algebraic effects and handlers for arrows
- Unguarded recursion on coinductive resumptions
- Effekt: Capability-passing style for type- and effect-safe, extensible effect handlers in Scala
- Protocol choice and iteration for the free cornering
- Runners for interleaving algebraic effects
- Inferring algebraic effects
- Streams of approximations, equivalence of recursive effectful programs
- Combining algebraic effects with continuations
- Runners in Action
- Structured handling of scoped effects
- Signature restriction for polymorphic algebraic effects
- A duality between exceptions and states
- Generic weakest precondition semantics from monads enriched with order
- Higher-order asynchronous effects
- scientific article; zbMATH DE number 7566074 (Why is no real title available?)
- Graded algebraic theories
- Efficient algebraic effect handlers for Prolog
- Tabling as a library with delimited control
- Programming with algebraic effects and handlers
- An introduction to algebraic effects and handlers (invited tutorial paper)
- Stateful runners of effectful computations
- Inductive and coinductive predicate liftings for effectful programs
- Explicit effect subtyping
- Handlers of Algebraic Effects
- scientific article; zbMATH DE number 7559296 (Why is no real title available?)
- Syntax and semantics for operations with scopes
- Modal crash types for intermittent computing
- The quantum monadology
- Continuation passing style for effect handlers
- Doo bee doo bee doo
- Effect handlers via generalised continuations
- Local algebraic effect theories
- Towards efficient adjustment of effect rows
- No value restriction is needed for algebraic effects and handlers
This page was built for publication: Handling algebraic effects
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q2871476)