TY - JOUR

T1 - Arrows, like Monads, are Monoids

AU - Heunen, Chris

AU - Jacobs, Bart

N1 - Proceedings of the 22nd Annual Conference on Mathematical Foundations of Programming Semantics (MFPS XXII)Mathematical Foundations of Programming Semantics XXII

PY - 2006

Y1 - 2006

N2 - 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.

AB - 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.

KW - Freyd category

U2 - 10.1016/j.entcs.2006.04.012

DO - 10.1016/j.entcs.2006.04.012

M3 - Article

VL - 158

SP - 219

EP - 236

JO - Electronic Notes in Theoretical Computer Science

JF - Electronic Notes in Theoretical Computer Science

SN - 1571-0661

ER -