Principality of typings is the property that for each typable term, there is a typing from which all other typings are obtained via some set of operations. Type inference is the problem of finding a typing for a given term, if possible. We define an intersection type system which has principal typings and types exactly the strongly normalizable λ-terms. More interestingly, every finite-rank restriction of this system (using Leivant's first notion of rank) has principal typings and also has decidable type inference. This is in contrast to System F where the finite rank restriction for every finite rank at 3 and above has neither principal typings nor decidable type inference. This is also in contrast to earlier presentations of intersection ...
Type inference is a key component of modern statically typed programming languages. It allows progra...
We present a typing system with non-idempotent intersection types, typing a term syntax covering thr...
Bidirectional typechecking, in which terms either synthesize a type or are checked against a known t...
AbstractPrincipality of typings is the property that for each typable term, there is a typing from w...
AbstractWe introduce a new unification procedure for the type inference problem in the intersection ...
We consider type systems that combine universal types, recursive types, and object types. We study t...
The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and V...
We revisit the undecidability result of rank 3 intersection type inhabitation (Urzyczyn 2009) in pur...
We demonstrate the pragmatic value of the principal typing property, a property more general than M...
The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and ...
AbstractThe operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezan...
We study the problem of type inference for a family of polymorphic type disciplines containing the p...
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...
We revisit the undecidability result of rank 3 intersection type inhabitation (Urzyczyn 2009) in pur...
Type inference is a key component of modern statically typed programming languages. It allows progra...
We present a typing system with non-idempotent intersection types, typing a term syntax covering thr...
Bidirectional typechecking, in which terms either synthesize a type or are checked against a known t...
AbstractPrincipality of typings is the property that for each typable term, there is a typing from w...
AbstractWe introduce a new unification procedure for the type inference problem in the intersection ...
We consider type systems that combine universal types, recursive types, and object types. We study t...
The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and V...
We revisit the undecidability result of rank 3 intersection type inhabitation (Urzyczyn 2009) in pur...
We demonstrate the pragmatic value of the principal typing property, a property more general than M...
The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and ...
AbstractThe operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezan...
We study the problem of type inference for a family of polymorphic type disciplines containing the p...
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...
We revisit the undecidability result of rank 3 intersection type inhabitation (Urzyczyn 2009) in pur...
Type inference is a key component of modern statically typed programming languages. It allows progra...
We present a typing system with non-idempotent intersection types, typing a term syntax covering thr...
Bidirectional typechecking, in which terms either synthesize a type or are checked against a known t...