Hostname: page-component-74656f9884-j7cmm Total loading time: 0 Render date: 2026-11-09T20:48:53.271Z Has data issue: false hasContentIssue false

Generalized monoidal effects and handlers

Published online by Cambridge University Press:  28 July 2020

RUBEN P. PIETERS
Affiliation:
KU Leuven, Leuven, Belgium, (e-mail: ruben.pieters@cs.kuleuven.be)
EXEQUIEL RIVAS
Affiliation:
Inria, Paris, France, (e-mail: exequiel.rivas-gadda@inria.fr)
TOM SCHRIJVERS
Affiliation:
KU Leuven, Leuven, Belgium, (e-mail: tom.schrijvers@cs.kuleuven.be)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Algebraic effects and handlers are a convenient method for structuring monadic effects with primitive effectful operations and separating the syntax from the interpretation of these operations. However, the scope of conventional handlers is limited as not all side effects are monadic in nature. This paper generalizes the notion of algebraic effects and handlers from monads to generalized monoids, which notably covers applicative functors and arrows as well as monads. For this purpose, we switch the category theoretical basis from free algebras to free monoids. In addition, we show how lax monoidal functors enable the reuse of handlers and programs across different computation classes, for example, handling applicative computations with monadic handlers. We motivate and present these handler interfaces in the context of build systems. Tasks in a build system are represented by a free computation and their interpretation as a handler. This use case is based on the work of Mokhov et al. [(2018). PACMPL2(ICFP), 79:1–79:29.].

Information

Type
Research Article
Copyright
© Cambridge University Press 2020
Submit a response

Discussions

No Discussions have been published for this article.