Typing Local Definitions and Conditional Expressions with Rank 2 Intersection (Extended Abstract)

  • Ferruccio Damiani
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1784)


We introduce a variant of the system of rank 2 intersection types with new typing rules for local definitions (let-expressions and letrec-expressions) and conditional expressions (if-expressions and case-expressions). These extensions are a further step towards the use of intersection types in “real” programming languages.


Type System Intersection Type Simple Type Typing Rule Type Inference 
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.


  1. 1.
    S. Aditya and R. Nikhil. Incremental polymorphism. In POPL’93, LNCS 523, pages 379–405. Springer-Verlag, 1991.Google Scholar
  2. 2.
    M. Coppo and P. Giannini. Principal Types and Unification for Simple Intersection Types Systems. Information and Computation, 122(1):70–96, 1995.MATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    L. M. M. Damas and R. Milner. Principal type schemas for functional programs. In POPL’82, pages 207–212. ACM, 1982.Google Scholar
  4. 4.
    F. Damiani and P. Giannini. A Decidable Intersection Type System based on Relevance. In TACS’94, LNCS 789, pages 707–725. Springer-Verlag, 1994.Google Scholar
  5. 5.
    R. Hindley. Basic Simple Type Theory. Number 42 in Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, London, 1997.MATHGoogle Scholar
  6. 6.
    T. Jim. Rank 2 type systems and recursive definitions. Technical Report MIT/LCS/TM-531, LCS, Massachusetts Institute of Technology, 1995.Google Scholar
  7. 7.
    T. Jim. What are principal typings and what are they good for? In POPL’96, pages 42–53. ACM, 1996.Google Scholar
  8. 8.
    A. J. Kfoury and J. B. Wells. A direct algorithm for type inference in the rank-2 fragment of the second-order lambda-calculus. In LISP and Functional Programming’ 94. ACM, 1994.Google Scholar
  9. 9.
    A. J. Kfoury and J. B. Wells. Principality and Decidable Type Inference for Finite-Rank Intersection Types. In POPL’99. ACM, 1999.Google Scholar
  10. 10.
    D. Leivant. Polymorphic Type Inference. In POPL’83. ACM, 1983.Google Scholar
  11. 11.
    R. Milner, M. Tofte, R. Harper, and D. MacQueen. The Definition of Standard ML-Revised. MIT press, 1997.Google Scholar
  12. 12.
    A. Mycroft. Polymorphic Type Schemes and Recursive Definitions. In International Symposium on Programming, LNCS 167, pages 217–228. Springer-Verlag, 1984.Google Scholar
  13. 13.
    Z. Shao and A. W. Appel. Smartest recompilation. In POPL’93, pages 439–450. ACM, 1993.Google Scholar
  14. 14.
    S. van Bakel. Intersection Type Disciplines in Lambda Calculus and Applicative Term Rewriting Systems. PhD thesis, Katholieke Universiteit Nijmegen, 1993.Google Scholar
  15. 15.
    H. Yokouchi. Embedding a Second-Order Type System into an Intersection Type System. Information and Computation, 117:206–220, 1995.MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Ferruccio Damiani
    • 1
  1. 1.Dipartimento di InformaticaUniversità di TorinoTorinoItaly

Personalised recommendations