We present an extension of the Hindley-Milner type system that supports a generous class of type constructors called functors, and provide a parametrically polymorphic algorithm for their mapping, i.e. for applying a function to each datum appearing in a value of constructed type. The algorithm comes from shape theory, which provides a uniform method for locating data within a shape. The resulting system is Church-Rosser and strongly normalizing, and supports type inference. Several dierent semantics are possible, which aects the choice of constants in the language, and are used to illustrate the relationship to polytypic programming. Capsule Review A wide class of type constructors (functions producing types from types) used in functional programming are functorial, in the sense that they can be extended to mappings from functions to functions satisfying a few simple laws. The `map' functional for lists is the prototypic example. Moreover, this additional structure for type constru..
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.