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 -