Results 1 -
3 of
3
Practical type inference for arbitrary-rank types
- Journal of Functional Programming
, 2005
"... Note: This document accompanies the paper “Practical type inference for arbitrary-rank types ” [6]. Prior reading of the main paper is required. 1 Contents ..."
Abstract
-
Cited by 78 (18 self)
- Add to MetaCart
Note: This document accompanies the paper “Practical type inference for arbitrary-rank types ” [6]. Prior reading of the main paper is required. 1 Contents
Type Inference with Rank 1 Polymorphism for Type-Directed Compilation of ML
, 1998
"... This paper denes an extended polymorphic type system for an ML-style programming language, and develops a sound and complete type inference algorithm. Dierent from the conventional ML type discipline, the proposed type system allows full rank 1 polymorphism, where polymorphic types can appear in oth ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
This paper denes an extended polymorphic type system for an ML-style programming language, and develops a sound and complete type inference algorithm. Dierent from the conventional ML type discipline, the proposed type system allows full rank 1 polymorphism, where polymorphic types can appear in other types such as product types, disjoint union types and range types of function types. Because of this feature, the proposed type system signicantly reduces the value-only restriction of polymorphism, which is currently adopted in most of ML-style impure languages. It also serves as a basis for ecient implementation of type-directed compilation of polymorphism. The extended type system achieves more ecient type inference algorithm, and it also contributes to develop more ecient type-passing implementation of polymorphism. We show that the conventional ML polymorphism sometimes introduces exponential overhead both at compile-time elaboration and run-time type-passing execution, and that t...
Functorial ML
, 1998
"... 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 come ..."
Abstract
- Add to MetaCart
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...

