Skip to main content

A Notation for Comonads

Orchard, Dominic A., Mycroft, Alan (2012) A Notation for Comonads. In: Lecture Notes in Computer Science. Symposium on Implementation and Application of Functional Languages. . pp. 1-17. Springer (doi:10.1007/978-3-642-41582-1_1)

PDF - Author's Accepted Manuscript
Download (250kB) Preview
Official URL


The category-theoretic concept of a monad occurs widely as a design pattern for functional programming with effects. The utility and ubiquity of monads is such that some languages provide syntactic sugar for this pattern, further encouraging its use. We argue that comonads, the dual of monads, similarly provide a useful design pattern, capturing notions of context dependence. However, comonads remain relatively under-used compared to monads—due to a lack of knowledge of the design pattern along with the lack of accompanying simplifying syntax. We propose a lightweight syntax for comonads in Haskell, analogous to the do-notation for monads, and provide examples of its use. Via our notation, we also provide a tutorial on programming with comonads.

Item Type: Conference or workshop item (Paper)
DOI/Identification number: 10.1007/978-3-642-41582-1_1
Divisions: Faculties > Sciences > School of Computing
Faculties > Sciences > School of Computing > Programming Languages and Systems Group
Depositing User: Dominic Orchard
Date Deposited: 05 May 2017 13:39 UTC
Last Modified: 29 May 2019 17:53 UTC
Resource URI: (The current URI for this page, for reference purposes)
Orchard, Dominic A.:
  • Depositors only (login required):


Downloads per month over past year