×

Categorical semantics for arrows. (English) Zbl 1191.68406

Summary: 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 \(\mathbf C^{op} \times \mathbf C \to \mathbf C\). Observing similarities to monads – which are monoids in categories of endofunctors \(\mathbf C \to \mathbf 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’.

MSC:

68Q55 Semantics in the theory of computing
68N18 Functional programming and lambda calculus

Software:

Haskell
PDFBibTeX XMLCite
Full Text: DOI

References:

[1] Wadler, Proceedings of the NATO ASI on Program Design Calculi (Marktoberdorf, July/August 1992) pp 233– (1993) · doi:10.1007/978-3-662-02880-3_8
[2] Mac Lane, Categories for the Working Mathematician (1971) · doi:10.1007/978-1-4612-9839-7
[3] Li, Arrows for Secure Information Flow (2008) · Zbl 1200.68063
[4] DOI: 10.1016/S0890-5401(03)00088-9 · Zbl 1069.68073 · doi:10.1016/S0890-5401(03)00088-9
[5] Kelly, Basic Concepts of Enriched Category Theory (1982) · Zbl 0478.18005
[6] Jacobs, Proceedings of the Workshop on Mathematically Structured Functional Programming, MSFP 2006 (Kuressaare, July 2006) (2006)
[7] DOI: 10.1016/j.ic.2005.03.006 · Zbl 1110.68069 · doi:10.1016/j.ic.2005.03.006
[8] Freyd, Abelian Categories: An Introduction to the Theory of Functors (1964) · Zbl 0121.02103
[9] Jacobs, Categorical Logic and Type Theory (1999) · Zbl 0911.03001
[10] Erkök, Proceedings of the 2002 ACM SIGPLAN Workshop on Haskell, Haskell ’02 (Pittsburgh, PA, October 2002) pp 29– (2002)
[11] DOI: 10.1016/0168-0072(88)90018-8 · Zbl 0659.18007 · doi:10.1016/0168-0072(88)90018-8
[12] DOI: 10.1007/BFb0060438 · Zbl 0203.31402 · doi:10.1007/BFb0060438
[13] Hughes, Revised Lectures from 5th International School on Advanced Functional Programming, AFP 2004 (Tartu, August 2004) pp 73– (2005)
[14] DOI: 10.1017/S0960129505004718 · Zbl 1169.68537 · doi:10.1017/S0960129505004718
[15] DOI: 10.1016/S0167-6423(99)00023-4 · Zbl 0954.68034 · doi:10.1016/S0167-6423(99)00023-4
[16] Borceux, Handbook of Categorical Algebra, Volume 2: Categories and Structures (1994) · Zbl 0911.18001
[17] Heunen, Proceedings of the 22nd Annual Conference on Mathematical Foundations of Programming Semantics, MFPS-XXII (Genova, May 2006) pp 219– (2006)
[18] Borceux, Handbook of Categorical Algebra, Volume 1: Basic Category Theory (1994) · Zbl 0911.18001
[19] DOI: 10.1051/ita:2003020 · Zbl 1110.68356 · doi:10.1051/ita:2003020
[20] DOI: 10.1145/1088348.1088357 · doi:10.1145/1088348.1088357
[21] Uustalu, J. Univ. Comput. Sci. 11 pp 1310– (2005)
[22] Swierstra, Tutorial Text from Second International School on Advanced Functional Programming (Olympia, WA, August 1996) pp 184– (1996)
[23] DOI: 10.1016/0022-4049(72)90019-9 · Zbl 0241.18003 · doi:10.1016/0022-4049(72)90019-9
[24] DOI: 10.1017/S0960129597002375 · Zbl 0897.18002 · doi:10.1017/S0960129597002375
[25] Power, Proceedings of the 3rd International Symposium on Theoretical Aspects of Computer Software. TACS ’97 (Sendai, September 1997) pp 391– (1997)
[26] Peyton Jones, Haskell 98 Language and Libraries: The Revised Report (2003) · Zbl 1067.68041
[27] Paterson, The Fun of Programming pp 201– (2003)
[28] DOI: 10.1145/507635.507664 · Zbl 1323.68147 · doi:10.1145/507635.507664
[29] Moggi, Proceedings of the 4th Annual IEEE Symposium on Logic in Computer Science, LICS ’89 (Pacific Grove, CA, June 1989) pp 14– (1989)
[30] DOI: 10.1017/S0960129506005287 · Zbl 1122.68062 · doi:10.1017/S0960129506005287
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.