Type reconstruction in the presence of polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Embedding a second-order type system into an intersection type system
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
Types as abstract interpretations
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Basic simple type theory
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Incremental polymorphic type checking in B
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An Extended Polymorphic Type System for Applicative Languages
MFCS '80 Proceedings of the 9th Symposium on Mathematical Foundations of Computer Science
The Essence of Principal Typings
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
Properties of a Type Abstract Interpreter
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
Polymorphic Type Schemes and Recursive Definitions
Proceedings of the 6th Colloquium on International Symposium on Programming
Rank 2 intersection types for local definitions and conditional expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Rank 2 Type Systems and Recursive Definitions
Rank 2 Type Systems and Recursive Definitions
Programming Examples Needing Polymorphic Recursion
Electronic Notes in Theoretical Computer Science (ENTCS)
Rank-2 intersection and polymorphic recursion
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
On Polymorphic Recursion, Type Systems, and Abstract Interpretation
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Hi-index | 0.00 |
Let ⊢ be an intersection type system. We say that a termis ⊢-simple (or just simple when the system ⊢ is clearfrom the context) if system ⊢ can prove that it has a simpletype. In this paper we propose new typing rules and algorithms thatare able to type (with rank 2 intersection types) recursivedefinitions that are not simple. Typing rules for assigningintersection types to (nonsimple) recursive definitions have beenalready proposed in the literature. However, at the best of ourknowledge, previous algorithms for typing recursive definitions inthe presence of intersection types allow only simple recursivedefinitions to be typed. The rules and algorithms proposed in thispaper are also able to type interesting examples of polymorphicrecursion (i.e., recursive definitions rec {x=e} where differentoccurrences of x in e are used with different types). Moreover, theunderlying techniques do not depend on particulars of rank 2intersection, so they can be applied to other type systems.