Abstract
Arrows are an extension of the well-established notion of a monad in functional-programming languages. This paper presents several examples and constructions and develops denotational semantics of arrows as monoids in categories of bifunctors Cop × C ¿ C. Observing similarities to monads – which are monoids in categories of endofunctors C ¿ C – it then considers Eilenberg–Moore and Kleisli constructions for arrows. The latter yields Freyd categories, mathematically formulating the folklore claim ‘Arrows are Freyd categories.’
Original language | English |
---|---|
Pages (from-to) | 403-438 |
Journal | Journal of Functional Programming |
Volume | 19 |
Issue number | 3-4 |
DOIs | |
Publication status | Published - 2009 |