TY - JOUR
T1 - Finite subtype inference with explicit polymorphism
AU - Duggan, Dominic
PY - 2001/1
Y1 - 2001/1
N2 - Finite subtype inference occupies a middle ground between Hindley-Milner-type inference (as in ML) and subtype inference with recursively constrained types. It refers to subtype inference where only finite types are allowed as solutions. This approach avoids some open problems with general subtype inference, and has practical motivation where recursively constrained types are not appropriate. This paper presents algorithms for finite subtype inference, including checking for entailment of inferred types against explicitly declared polymorphic types. This resolves for finite types a problem that is still open for recursively constrained types. Some motivation for this work, particularly for finite types and explicit polymorphism, is in providing subtype inference for first-class container objects with polymorphic methods.
AB - Finite subtype inference occupies a middle ground between Hindley-Milner-type inference (as in ML) and subtype inference with recursively constrained types. It refers to subtype inference where only finite types are allowed as solutions. This approach avoids some open problems with general subtype inference, and has practical motivation where recursively constrained types are not appropriate. This paper presents algorithms for finite subtype inference, including checking for entailment of inferred types against explicitly declared polymorphic types. This resolves for finite types a problem that is still open for recursively constrained types. Some motivation for this work, particularly for finite types and explicit polymorphism, is in providing subtype inference for first-class container objects with polymorphic methods.
UR - http://www.scopus.com/inward/record.url?scp=0035155097&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0035155097&partnerID=8YFLogxK
U2 - 10.1016/S0167-6423(00)00013-7
DO - 10.1016/S0167-6423(00)00013-7
M3 - Article
AN - SCOPUS:0035155097
SN - 0167-6423
VL - 39
SP - 57
EP - 92
JO - Science of Computer Programming
JF - Science of Computer Programming
IS - 1
ER -