Skip to main content Accessibility help

Categorical semantics for arrows



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 × CC. Observing similarities to monads – which are monoids in categories of endofunctors CC – it then considers Eilenberg–Moore and Kleisli constructions for arrows. The latter yields Freyd categories, mathematically formulating the folklore claim ‘Arrows are Freyd categories.’



Hide All
Alimarine, A., Smetsers, S., van Weelden, A., van Eekelen, M. & Plasmeijer, R. (2005) There and back again: arrows for invertible programming. In Proceedings of the 2005 ACM SIGPLAN Workshop on Haskell, Haskell '05 (Tallinn, September 2005). ACM Press, pp. 8697.
Bénabou, J. (2000) Distributors at work. Lecture notes written by Thomas Streicher. (Accessed 4 May 2009).
Benton, N. & Hyland, M. (2003) Traced premonoidal categories, Theoret. Inform. Appl., 37 (4): 273299.
Borceux, F. (1994a) Handbook of Categorical Algebra, Volume 1: Basic Category Theory, Encyclopedia of Mathematics and Its Applications, vol. 50. Cambridge University Press.
Borceux, F. (1994b) Handbook of Categorical Algebra, Volume 2: Categories and Structures, Encyclopedia of Mathematics and Its Applications, vol. 51. Cambridge University Press.
Cattani, G. L. & Winskel, G. (2005) Profunctors, open maps and bisimulation, Math. Struct. Comput. Sci., 15 (3): 553614.
Day, B. J. (1970) Closed categories of functors. In Reports of the Midwest Category Seminar, Dold, A. & Eckmann, B. (eds), Lecture Notes in Mathematics, vol. 137. Springer, pp. 138.
Erkök, L. & Launchbury, J. (2002) A recursive do for Haskell. In Proceedings of the 2002 ACM SIGPLAN Workshop on Haskell, Haskell '02 (Pittsburgh, PA, October 2002). ACM Press, pp. 2937.
Freyd, P. J. (1964) Abelian Categories: An Introduction to the Theory of Functors. Harper and Row.
Heunen, C. & Jacobs, B. (2006) Arrows, like monads, are monoids. In Proceedings of the 22nd Annual Conference on Mathematical Foundations of Programming Semantics, MFPS-XXII (Genova, May 2006), Brookes, S. & Mislove, M. (eds), Electronic Notes in Theoretical Computer Science, vol. 158. Elsevier, pp. 219236.
Hughes, J. (2000) Generalising monads to arrows, Sci. Comput. Program., 37 (1–3): 67111.
Hughes, J. (2005) Programming with arrows. In Revised Lectures from 5th International School on Advanced Functional Programming, AFP 2004 (Tartu, August 2004), Vene, V. & Uustalu, T. (eds), Lecture Notes in Computer Science, vol. 3622. Springer, pp. 73129.
Hyland, J. M. E. (1988) A small complete category, Ann. Pure Appl. Logic, 40 (2): 135165.
Jacobs, B. (1999) Categorical Logic and Type Theory, Studies in Logic and the Foundations of Mathematics, vol. 141. North-Holland.
Jacobs, B. (2006) Distributive laws for the coinductive solution of recursive equations. Inform. Comput., 204 (4): 561587.
Jacobs, B. & Hasuo, I. (2006) Freyd is Kleisli, for arrows. In Proceedings of the Workshop on Mathematically Structured Functional Programming, MSFP 2006 (Kuressaare, July 2006), McBride, C. & Uustalu, T. (eds), Electronic Workshops in Computing. BCS, article 9.
Kelly, G. M. (1982) Basic Concepts of Enriched Category Theory. London Mathematical Society Lecture Notes Series, vol. 64. Cambridge University Press.
Levy, P. B., Power, J. & Thielecke, H. (2003) Modelling environments in call-by-value programming languages, Inform. Comput., 185 (2): 182210.
Li, P. & Zdancewic, S. (2008) Arrows for Secure Information Flow, Technical Report MS-CIS-08-02. School of Computer and Information Sciences, University of Pennsylvania.
Mac Lane, S. (1971) Categories for the Working Mathematician, Graduate Texts in Mathematics, vol. 5. Springer.
Moggi, E. (1989) Computational lambda-calculus and monads. In Proceedings of the 4th Annual IEEE Symposium on Logic in Computer Science, LICS '89 (Pacific Grove, CA, June 1989). IEEE CS Press, pp. 1423.
Paterson, R. (2001) A new notation for arrows. In Proceedings of the 6th ACM SIGPLAN International Conference on Functional Programming, ICFP '01 (Florence, September 2001). ACM Press, pp. 229240.
Paterson, R. (2003) Arrows and computation. In The Fun of Programming, Gibbons, J. & de Moor, O. (eds), Cornerstones of Computing. Palgrave MacMillan, pp. 201222.
Peyton Jones, S. L. (ed.) (2003) Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press.
Power, J. & Thielecke, H. (1997) Environments, continuation semantics and indexed categories. In Proceedings of the 3rd International Symposium on Theoretical Aspects of Computer Software. TACS '97 (Sendai, September 1997), Abadi, M. & Ito, T. (eds), Lecture Notes in Computer Science, vol. 1281. Springer, pp. 391414.
Robinson, E. P. & Power, J. (1997) Premonoidal categories and notions of computation, Math. Struct. Comput. Sci., 7 (5): 453468.
Street, R. (1972) The formal theory of monads, J. Pure Appl. Algebra, 2: 149169.
Swierstra, S. D. & Duponcheel, L. (1996) Deterministic, error-correcting combinator parsers. In Tutorial Text from Second International School on Advanced Functional Programming (Olympia, WA, August 1996), Launchbury, J., Meijer, E. & Sheard, T. (eds), Lecture Notes in Computer Science, vol. 1129. Springer, pp. 184207.
Uustalu, T. & Vene, V. (2005) Signals and comonads, J. Univ. Comput. Sci., 11 (7): 13101326.
Vizzotto, J. K., Altenkirch, T. & Sabry, A. (2006) Structuring quantum effects: superoperators as arrows, Math. Struct. Comput. Sci., 16 (3): 453468.
Wadler, P. (1993) Monads for functional programming. In Proceedings of the NATO ASI on Program Design Calculi (Marktoberdorf, July/August 1992), Broy, M. (ed.), NATO ASI Series F, vol. 118. Springer, pp. 233264.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *


Altmetric attention score

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed

Categorical semantics for arrows

Submit a response


No Discussions have been published for this article.


Reply to: Submit a response

Your details

Conflicting interests

Do you have any conflicting interests? *