Incremental Inference of Partial Types

  • Mario Coppo
  • Daniel Hirschkoff
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2202)


We present a type inference procedure with partial types for a λ-calculus equipped withda tatypes. Our procedure handles a type language containing greatest and least types (ω and ⊥ respectively), recursive types, subtyping, and datatypes (yielding constants at the level of terms). The main feature of our algorithm is incrementality; this allows us to progressively analyse successive de.nitions, which is of interest in the setting of a system like the CuCh machine (developed at the University of Rome). The methods we describe have led to an implementation; we illustrate its use on a few examples.


Type Variable Partial Type Type Scheme Type Inference Type Constraint 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AC93]
    R. Amadio and L. Cardelli. Subtyping recursive types. ACM Transactions on Programming Languages and Systems, 15(4):575–631, 1993.CrossRefGoogle Scholar
  2. [AK95]
    Z. M. Ariola and J. W. Klop. Equational term graphrewrit ing. Technical report, University of Oregon, 1995.Google Scholar
  3. [AS85]
    H. Abelson and G. J. Susman. Structure and Interpretation of Computer Programs. MIT Press, 1985.Google Scholar
  4. [BB85]
    C. Böhm and A. Berarducci. Automatic Synthesis of Typed λ-programs on Term Algebras. Theoretical Computer Science, 39:135–154, 1985.MATHCrossRefMathSciNetGoogle Scholar
  5. [BCDC83]
    H. P. Barendregt, M. Coppo, and M. Dezani-Ciancaglini. A filter lambda model and the completeness of type assignment. Journal of Symbolic Logic, 48:931–940, 1983.MATHCrossRefMathSciNetGoogle Scholar
  6. [BH98]
    M. Brandt and F. Henglein. Coinductive axiomatization of recursive type equality and subtyping. Fundamenta Informaticæ, 33:309–338, 1998.MATHMathSciNetGoogle Scholar
  7. [BPG94]
    C. Böhm, A. Piperno, and S. Guerrini. Lambda-definition of Function(al)s by Normal Forms. In Proc. of ESOP’94, volume 788 of LNCS, pages 135–154. Springer Verlag, 1994.Google Scholar
  8. [CC90]
    F. Cardone and M. Coppo. Two Extensions of Curry’s Inference System. In P. Odifreddi, editor, Logic and Computer Science, pages 19–75. Accademic Press, 1990.Google Scholar
  9. [CC91]
    F. Cardone and M. Coppo. Type inference withr ecursive types. Syntax and Semantics. Information and Computation, 92(1):48–80, 1991.MATHCrossRefMathSciNetGoogle Scholar
  10. [Gom90]
    C. Gomard. Partial Type Inference for Untyped Functional Programs. In Proceedings of the ACM Conference on Lisp and Functional Programming, pages 282–287, 1990.Google Scholar
  11. [Jim96]
    T. Jim. What are principal typings and what are they good for? In POPL’96, pages 42–53. ACM, 1996.Google Scholar
  12. [KPS94]
    D. Kozen, J. Palsberg, and M. I. Schwartzbach. Efficient inference of partial types. Journal of Computer and System Sciences, 49(2):306–324, 1994. also in Proceedings of FOCS’92, pages 363–371.MATHCrossRefMathSciNetGoogle Scholar
  13. [Mil78]
    R. Milner. A Theory of Type Polimorphism in Programming. Journal of Computer and System Sciences, 17:348–375, 1978.MATHCrossRefMathSciNetGoogle Scholar
  14. [Tha94]
    S. Thatte. Type inference with partial types. TCS, 124:127–148, 1994. also in Proceedings of ICALP’ 88, pages 615–629.MATHCrossRefMathSciNetGoogle Scholar
  15. [WO92]
    Mitchell Wand and Patrick M. O’Keefe. Type inference for partial types is decidable. In B. Krieg-Brückner, editor, European Symposium on Programming’ 92, volume 582 of LNCS, pages 408–417. Springer Verlag, 1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Mario Coppo
    • 1
  • Daniel Hirschkoff
    • 2
  1. 1.Dipartimento di InformaticaUniversità di TorinoFrance
  2. 2.LIP - École Normale Supérieure de LyonFrance

Personalised recommendations