Sciweavers

ICFP
2002
ACM

Composing monads using coproducts

15 years 16 days ago
Composing monads using coproducts
Monads are a useful abstraction of computation, as they model diverse computational effects such as stateful computations, exceptions and I/O in a uniform manner. Their potential to provide both a modular semantics and a modular programming style was soon recognised. However, in general, monads proved difficult to compose and so research focused on special mechanisms for their composition such as distributive monads and monad transformers. We present a new approach to this problem which is general in that nearly all monads compose, mathematically elegant in using the standard categorical tools underpinning monads and computationally expressive in supporting a canonical recursion operator. In a nutshell, we propose that two monads should be composed by takr coproduct. Although abstractly this is a simple idea, the actual construction of the coproduct of two monads is non-trivial. We outline this construction, show how to implement the coproduct within Haskell and demonstrate its usage ...
Christoph Lüth, Neil Ghani
Added 13 Dec 2009
Updated 13 Dec 2009
Type Conference
Year 2002
Where ICFP
Authors Christoph Lüth, Neil Ghani
Comments (0)