Abstract
Monads are a useful tool for structuring effectful features of computation such as state, non-determinism, and continuations. In the last decade, several generalisations of monads have been suggested which provide a more fine-grained model of effects by replacing the single type constructor of a monad with an indexed family of constructors. Most notably, graded monads (indexed by a monoid) model effect systems and parameterised monads (indexed by pairs of pre- and post-conditions) model program logics. This paper studies the relationship between these two generalisations of monads via a third generalisation. This third generalisation, which we call category-graded monads, arises by generalising a view of monads as a particular special case of lax functors. A category-graded monad provides a family of functors T f indexed by morphisms f of some other category. This allows certain compositions of effects to be ruled out (in the style of a program logic) as well as an abstract description of effects (in the style of an effect system). Using this as a basis, we show how graded and parameterised monads can be unified, studying their similarities and differences along the way.
| Original language | English (US) |
|---|---|
| Pages (from-to) | 18-38 |
| Number of pages | 21 |
| Journal | Electronic Proceedings in Theoretical Computer Science, EPTCS |
| Volume | 317 |
| DOIs | |
| State | Published - May 1 2020 |
| Event | 8th Workshop on Mathematically Structured Functional Programming, MSFP 2020 - Dublin, Ireland Duration: Apr 25 2020 → … |
ASJC Scopus subject areas
- Software
Fingerprint
Dive into the research topics of 'Unifying graded and parameterised monads'. Together they form a unique fingerprint.Cite this
- APA
- Standard
- Harvard
- Vancouver
- Author
- BIBTEX
- RIS