Article ID Journal Published Year Pages File Type
423056 Electronic Notes in Theoretical Computer Science 2006 18 Pages PDF
Abstract

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 Cop×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.

Related Topics
Physical Sciences and Engineering Computer Science Computational Theory and Mathematics