We study the type inference problem for a system with type classes as in the functional programming language Haskell. Type classes are an extension of ML-style polymorphism with overloading. We generalize Milner's work on polymorphism by introducing a separate context constraining the type variables in a typing judgement. This leads to simple type inference systems and algorithms which closely resemble those for ML. In particular we present a new unification algorithm which is an extension of syntactic unification with constraint solving. The existence of principal types follows from an analysis of this unification algorithm. 1 Introduction The extension of Hindley/Damas/Milner polymorphism with the notion of type classes in the func...
Type classes and type families are key ingredients in Haskell programming. Type classes were introdu...
AbstractThis paper describes a general theory of overloading based on a system of qualified types. T...
This thesis studies questions of type inference, unification and elaboration for languages that comb...
We study the type inference problem for a system with type classes as in the functional programming ...
We describe the implementation of a type checker for the functional programming language Haskell tha...
Qualified types provide a general framework for constrained type systems, with applications includin...
AbstractThe Hindley/Milner discipline for polymorphic type inference in functional programming langu...
This article presents a type system based on the Damas-Milner system [DM82], that supports overloadi...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Languages supporting polymorphism typically have ad-hoc restrictions on where polymorphic types may ...
Many computer programs have the property that they work correctly on a variety of types of input; s...
Qualified types provide a general framework for constrained type systems, with applications includin...
We present a new approach to the polymorphic typing of data accepting in-place modification in ML-li...
AbstractThis article explores the use of types constrained by the definition of functions of given t...
AbstractType inference is the compile-time process of reconstructing missing type information in a p...
Type classes and type families are key ingredients in Haskell programming. Type classes were introdu...
AbstractThis paper describes a general theory of overloading based on a system of qualified types. T...
This thesis studies questions of type inference, unification and elaboration for languages that comb...
We study the type inference problem for a system with type classes as in the functional programming ...
We describe the implementation of a type checker for the functional programming language Haskell tha...
Qualified types provide a general framework for constrained type systems, with applications includin...
AbstractThe Hindley/Milner discipline for polymorphic type inference in functional programming langu...
This article presents a type system based on the Damas-Milner system [DM82], that supports overloadi...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Languages supporting polymorphism typically have ad-hoc restrictions on where polymorphic types may ...
Many computer programs have the property that they work correctly on a variety of types of input; s...
Qualified types provide a general framework for constrained type systems, with applications includin...
We present a new approach to the polymorphic typing of data accepting in-place modification in ML-li...
AbstractThis article explores the use of types constrained by the definition of functions of given t...
AbstractType inference is the compile-time process of reconstructing missing type information in a p...
Type classes and type families are key ingredients in Haskell programming. Type classes were introdu...
AbstractThis paper describes a general theory of overloading based on a system of qualified types. T...
This thesis studies questions of type inference, unification and elaboration for languages that comb...