# Handling Algebraic Effects

arXiv: https://arxiv.org/abs/1312.1399 · HTML: https://mlsanity.com/paper/1312.1399/

## Key facts

- Cited by 5 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 5 Dec 2013.

## Built on by (most cited first, 5 of 5)

- [Sharing State Between Prompts and Programs](https://mlsanity.com/paper/2512.14805/) (2025)
- [Algebraic Semantics of Governed Execution: Monoidal Categories, Effect Algebras, and Coterminous Boundaries](https://mlsanity.com/paper/2605.01032/) (2026)
- [On Reinforcement Learning, Effect Handlers, and the State Monad](https://mlsanity.com/paper/2203.15426/) (2022)
- [Towards a unified framework for programming paradigms: A systematic review of classification formalisms and methodological foundations](https://mlsanity.com/paper/2508.00534/) (2025)
- [ETAS: An Effect-Typed Language for Agent Systems](https://mlsanity.com/paper/2607.17780/) (2026)

## Abstract (arXiv)

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.
