Simplifying subtyping constraints

This paper studies type inference for a functional, ML-style language with subtyping, and focuses on the issue of simplifying inferred constraint sets. We propose a powerful notion of entailment between constraint sets, as well as an algorithm to check it, which we prove to be sound. The algorithm, although very powerful in practice, is not complete. We also introduce two new typing rules which allow simplifying constraint sets. These rules give very good practical results.

[1]  Simon L. Peyton Jones,et al.  State in Haskell , 1995, LISP Symb. Comput..

[2]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[3]  Didier Rémy,et al.  Programming Objects with ML-ART, an Extension to ML with Abstract and Record Types , 1994, TACS.

[4]  Franois Pottier,et al.  Type Inference and Simplification for Recursively Constrained Types , 1995 .

[5]  Koji Kagawa Compositional references for stateful functional programming , 1997, ICFP '97.

[6]  David K. Gifford,et al.  Polymorphic effect systems , 1988, POPL '88.

[7]  Mark P. Jones A system of constructor classes: overloading and implicit higher-order polymorphism , 1993, FPCA '93.

[8]  Jean-Pierre Jouannaud,et al.  Functional Programming Languages and Computer Architecture , 1985, Lecture Notes in Computer Science.

[9]  Alexander Aiken,et al.  Type inclusion constraints and type inference , 1993, FPCA '93.

[10]  Yasuhiko Minamide,et al.  A functional representation of data structures with a hole , 1998, POPL '98.

[11]  Philippa Gardner,et al.  From Action Calculi to Linear Logic , 1997, CSL.

[12]  Pierre Jouvelot,et al.  Polymorphic type, region and effect inference , 1992, Journal of Functional Programming.

[13]  Mark P. Jones Simplifying and improving qualified types , 1995, FPCA '95.

[14]  Didier Rémy From Classes to Objects via Subtyping , 1998, ESOP.

[15]  John C. Mitchell,et al.  Coercion and type inference , 1984, POPL.

[16]  Scott F. Smith,et al.  Sound polymorphic type inference for objects , 1995, OOPSLA.

[17]  Jens Palsberg,et al.  A type system equivalent to flow analysis , 1995, TOPL.

[18]  Koji Kagawa Type Inference for the Mixture of Matching and Implicit Subtyping , 1996 .

[19]  Giorgio Ghelli,et al.  Complexity of kernel Fun subtype checking , 1996, ICFP '96.

[20]  Luca Cardelli,et al.  Subtyping recursive types , 1991, POPL '91.

[21]  Prateek Mishra,et al.  Polymorphic Subtype Inference: Closing the Theory-Practice Gap , 1989, TAPSOFT, Vol.2.

[22]  Jens Palsberg,et al.  Efficient inference of object types , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[23]  Scott F. Smith,et al.  Type inference for recursively constrained types and its application to OOP , 1995, MFPS.