A New Notation for Arrows

Ross Paterson

To appear at International Conference on Functional Programming (ICFP01), Firenze, Italy, 3-5 September 2001


Domain-specific languages may be implemented via an embedding in a general-purpose language. Functional languages, with their powerful abstraction and composition mechanisms, are ideal for this purpose. In effect, each library of combinators defines a new sublanguage. The categorical notion of monad, used by Moggi to structure denotational descriptions, has proved to be a powerful tool for structuring such libraries. Recently, several workers have proposed a generalization of monads, called variously ``arrows'' or Freyd-categories. The extra generality promises to increase the power, expressiveness and efficiency of the embedded approach, but does not mesh as well with the native abstraction and application. Definitions are typically given in a point-free style, which is useful for proving general properties, but can be awkward for programming specific instances. In this paper we define a simple extension to the functional language Haskell that makes these new notions of computation more convenient to use. Our language is similar to the monadic style, and has similar reasoning properties. Moreover, it is extensible, in the sense that new combining forms can be defined as expressions in the host language.

Server START Conference Manager
Update Time 11 May 2001 at 15:31:50
Maintainer Xavier.Leroy@inria.fr.
Start Conference Manager
Conference Systems