Applicative Intersection Types
summary
Two calculi for intersection types with an explicit merge operator: the first admits an unrestricted merge, proves type soundness but yields non-deterministic semantics; the second adds a disjointness restriction to regain determinism at the cost of rejecting some overloadings. Key technical contributions are an applicative subtyping relation and a matching applicative dispatching dynamic semantics that infer result types for applications and projections. Both calculi and proofs are formalized in Coq and a Racket interpreter exists.
AI-written summary · about
chapters (22)
- 0:00Intro
- 0:45Intersection Types
- 2:09Merge Operator
- 3:09Extensible Records
- 3:53Record Projection
- 5:28Overloaded Application
- 6:05Return type Overloading
- 7:20Nested Composition?
- 9:59Challenges in Type Inference
- 11:27Challenges in Dynamic Semantics
- 11:52Distributivity Breaks the Assumptions
- 13:00Re-interpret Subtyping
- 15:23Examples of Applicative Subtyping
- 16:18Composition Operators
- 17:41Examples (applying nested composition semantics)
- 18:42Metatheory
- 20:18Operational Semantics
- 20:36Applicative Dispatching
- 21:47Type Soundness
- 21:59More in the paper
- 23:06Overloaded Functions
- 28:34Goodness of Nested Composition
