Modem functional languages feature polymorphic types whose data structures must be fixed, though their component types may be generic; we present a new notion called analytical polymorphism which allows both data structures and their component types to be generic. Traditional polymorphism is expressed with universally-quantified variables ranging over types and is justified by the independence of a typing with respect to the quantified variable. Analytical polymorphism is expressed with universally-quantified variables ranging over both types and type functions and is justified instead by the recursive analysis of the forms of all admissible instantiations of these variables. We use pattern-matching to express the recursive analysis of type...
Type inference is a key component of modern statically typed programming languages. It allows progra...
AbstractThe Hindley/Milner discipline for polymorphic type inference in functional programming langu...
Many computer programs have the property that they work correctly on a variety of types of input; s...
This paper describes structural polymorphism, a new form of type polymorphism appropriate to functio...
Type inference for structural polymorphism ---i.e. record and variant polymorphism--- has been an ac...
Our objective is to understand the notion of type in programming languages, present a model of typed...
Our objective is to understand the notion of type in programming languages, present a model of typed...
Our objective is to understand the notion of type in programming languages, present a model of typed...
There is a significant class of operations such as mapping that are common to all data structures. T...
Traditional techniques for implementing polymorphism use auniversal representation for objects of un...
. Higher-order programming languages, such as ML, permit a flexible programming style by using compi...
. Higher-order programming languages, such as ML, permit a flexible programming style by using compi...
We present a new approach to the polymorphic typing of data accepting in-place modification in ML-li...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Type inference is a key component of modern statically typed programming languages. It allows progra...
AbstractThe Hindley/Milner discipline for polymorphic type inference in functional programming langu...
Many computer programs have the property that they work correctly on a variety of types of input; s...
This paper describes structural polymorphism, a new form of type polymorphism appropriate to functio...
Type inference for structural polymorphism ---i.e. record and variant polymorphism--- has been an ac...
Our objective is to understand the notion of type in programming languages, present a model of typed...
Our objective is to understand the notion of type in programming languages, present a model of typed...
Our objective is to understand the notion of type in programming languages, present a model of typed...
There is a significant class of operations such as mapping that are common to all data structures. T...
Traditional techniques for implementing polymorphism use auniversal representation for objects of un...
. Higher-order programming languages, such as ML, permit a flexible programming style by using compi...
. Higher-order programming languages, such as ML, permit a flexible programming style by using compi...
We present a new approach to the polymorphic typing of data accepting in-place modification in ML-li...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Type inference is a key component of modern statically typed programming languages. It allows progra...
AbstractThe Hindley/Milner discipline for polymorphic type inference in functional programming langu...
Many computer programs have the property that they work correctly on a variety of types of input; s...