Arrows, like Monads, are Monoids

Chris Heunen, Bart Jacobs

Research output: Contribution to journalArticlepeer-review


Monads are by now well-established as programming construct in functional languages. Recently, the notion of “Arrow” was introduced by Hughes as an extension, not with one, but with two type parameters. At first, these Arrows may look somewhat arbitrary. Here we show that they are categorically fairly civilised, by showing that they correspond to monoids in suitable subcategories of bifunctors C op × C → C . This shows that, at a suitable level of abstraction, arrows are like monads — which are monoids in categories of functors C → C . Freyd categories have been introduced by Power and Robinson to model computational effects, well before Hughes' Arrows appeared. It is often claimed (informally) that Arrows are simply Freyd categories. We shall make this claim precise by showing how monoids in categories of bifunctors exactly correspond to Freyd categories.
Original languageEnglish
Pages (from-to)219-236
Number of pages18
JournalElectronic Notes in Theoretical Computer Science
Publication statusPublished - 2006


  • Freyd category


Dive into the research topics of 'Arrows, like Monads, are Monoids'. Together they form a unique fingerprint.

Cite this