Principal type scheme and unification for intersection type discipline
Theoretical Computer Science - International Joint Conference on Theory and Practice of Software Development, P
Type inference: some results, some problems
Fundamenta Informaticae - Special issue: lambda calculus and type theory
Principal types and unification for simple intersection type systems
Information and Computation
What are principal typings and what are they good for?
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A modular, polyvariant and type-based closure analysis
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Inference of polymorphic and conditional strictness properties
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principality and decidable type inference for finite-rank intersection types
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Relating typability and expressiveness in finite-rank intersection type systems (extended abstract)
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Strictness, totality, and non-standard-type inference
Theoretical Computer Science - Special issue on theories of types and proofs
Une Extension de la Theorie des Types en lambda-Calcul
Proceedings of the Fifth Colloquium on Automata, Languages and Programming
The Essence of Principal Typings
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
Towards a theory of type structure
Programming Symposium, Proceedings Colloque sur la Programmation
Rank 2 intersection types for local definitions and conditional expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Rank 2 intersection types for modules
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A conjunctive type system for useless-code elimination
Mathematical Structures in Computer Science
Mathematical Structures in Computer Science
Automatic useless-code elimination for HOT functional programs
Journal of Functional Programming
Principality and type inference for intersection types using expansion variables
Theoretical Computer Science
Type error slicing in implicitly typed higher-order languages
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Type error slicing in implicitly typed higher-order languages
ESOP'03 Proceedings of the 12th European conference on Programming
A Complete Realisability Semantics for Intersection Types and Arbitrary Expansion Variables
Proceedings of the 5th international colloquium on Theoretical Aspects of Computing
Expansion for universal quantifiers
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Fundamenta Informaticae - Intersection Types and Related Systems ITRS
On Realisability Semantics for Intersection Types with Expansion Variables
Fundamenta Informaticae - Intersection Types and Related Systems ITRS
Hi-index | 0.00 |
The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and Venneri for reasoning about the possible typings of a term when using intersection types. Until recently, it has remained somewhat mysterious and unfamiliar, even though it is essential for carrying out compositional type inference. The fundamental idea of expansion is to be able to calculate the effect on the final judgement of a typing derivation of inserting a use of the intersection-introduction typing rule at some (possibly deeply nested) position, without actually needing to build the new derivation. Recently, we have improved on this by introducing expansion variables (E-variables), which make the calculation straightforward and understandable. E-variables make it easy to postpone choices of which typing rules to use until later constraint solving gives enough information to allow making a good choice. Expansion can also be done for type constructors other than intersection, such as the ! of Linear Logic, and E-variables make this easy. There are no significant new technical results in this paper; instead this paper surveys and explains the technical results of a quarter of a century of work on expansion.