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
(53)- PRISM revisited: declarative implementation of a probabilistic programming language using multi-prompt delimited control
- Graded algebraic theories
- Mac Lane's comparison theorem for the Kleisli construction formalized in Coq
- Stateful runners of effectful computations
- Dependent types and fibred computational effects
- A duality between exceptions and states
- Inferring algebraic effects
- Notions of bidirectional computation and entangled state monads
- Fusion for free. Efficient algebraic effect handlers
- Handlers of Algebraic Effects
- Unguarded recursion on coinductive resumptions
- Tabling as a library with delimited control
- Efficient algebraic effect handlers for Prolog
- scientific article; zbMATH DE number 2087428 (Why is no real title available?)
- Programming with algebraic effects and handlers
- Runners in Action
- Typed equivalence of effect handlers and delimited control
- scientific article; zbMATH DE number 7566074 (Why is no real title available?)
- Effect handlers via generalised continuations
- Effekt: Capability-passing style for type- and effect-safe, extensible effect handlers in Scala
- Doo bee doo bee doo
- Continuation passing style for effect handlers
- Local algebraic effect theories
- Explicit effect subtyping
- Syntax and semantics for operations with scopes
- Handlers in action
- No value restriction is needed for algebraic effects and handlers
- Backtracking with cut via a distributive law and left-zero monoids
- An introduction to algebraic effects and handlers (invited tutorial paper)
- Reversible monadic computing
- When programs have to watch paint dry
- Streams of approximations, equivalence of recursive effectful programs
- Towards efficient adjustment of effect rows
- Protocol choice and iteration for the free cornering
- Runners for interleaving algebraic effects
- Structured handling of scoped effects
- Modal crash types for intermittent computing
- Asymptotic speedup via effect handlers
- Signature restriction for polymorphic algebraic effects
- Higher-order asynchronous effects
- Inductive and coinductive predicate liftings for effectful programs
- A complete normal-form bisimilarity for algebraic effects and handlers
- Design and implementation of the andromeda proof assistant
- Simplifying explicit subtyping coercions in a polymorphic calculus with effects
- Two-sorted algebraic decompositions of Brookes's shared-state denotational semantics
- The quantum monadology
- From high to low: simulating nondeterminism and state with state
- Algebraic effects and handlers for arrows
- Initial algebras of domains via quotient inductive-inductive types
- The functional machine calculus. III: Control
- Introducing \(\llparenthesis\lambda\rrparenthesis\), a \(\lambda \)-calculus for effectful computation
- Combining algebraic effects with continuations
- Generic weakest precondition semantics from monads enriched with order
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)