Skip to main content
    • Aa
    • Aa

The arrow calculus


We introduce the arrow calculus, a metalanguage for manipulating Hughes's arrows with close relations both to Moggi's metalanguage for monads and to Paterson's arrow notation. Arrows are classically defined by extending lambda calculus with three constructs satisfying nine (somewhat idiosyncratic) laws; in contrast, the arrow calculus adds four constructs satisfying five laws (which fit two well-known patterns). The five laws were previously known to be sound; we show that they are also complete, and hence that the five laws may replace the nine.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

R. Atkey (2008) What is a categorical model of arrows? In Mathematical Structures in Functional Programming, V. Capreta & C. McBride (eds), Electronic Notes in Theoretical Computer Science, Reykjavic, Iceland.

N. Benton (1995) A mixed linear and non-linear logic: Proofs, terms and models. In Computer Science Logics, L. Pacholski & J. Tiuryn (eds), Lecture Notes in Computer Science, vol. 933. Springer–Verlag, Kazimierz, Poland.

P. Hudak , A. Courtney , H. Nilsson & J. Peterson (2003) Arrows, robots, and functional reactive programming. In Advanced Functional Programming, 4th International School, J. Jeuring & S. P. Jones (eds), LNCS, vol. 2638. Springer-Verlag, Oxford, UK.

J. Hughes (2000) Generalising monads to arrows, Sci Comput Program., 37: 67111.

P. Jansson & J. Jeuring (1999) Polytypic compact printing and parsing. Pages 273–287 of: European Symposium on Programming, LNCS, vol. 1576. Springer-Verlag, Amsterdam, The Netherlands.

S. Lindley , P. Wadler & J. Yallop (2008a) The Arrow Calculus. Tech. rept. EDI-INF-RR-1258. School of Informatics, University of Edinburgh.

E. Moggi (1991) Notions of computation and monads, Inf. Comput., 93 (1): 5592.

J. Power & E. Robinson (1997) Premonoidal categories and notions of computation, Math. Struct. Comput. Sci., 7 (5): 453468.

A. Sabry & M. Felleisen (1993) Reasoning about programs in continuation-passing style, Lisp Symbol. Comput., 6 (3/4): 289360.

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? *