2021
DOI: 10.1145/3473594
|View full text |Cite
|
Sign up to set email alerts
|

Distributing intersection and union types with splits and duality (functional pearl)

Abstract: Subtyping with intersection and union types is nowadays common in many programming languages. From the perspective of logic, the subtyping problem is essentially the problem of determining logical entailment : does a logical statement follow from another one? Unfortunately, algorithms for deciding subtyping and logical entailment with intersections, unions and various distributivity laws can be highly non-trivial. This functional pearl presents a novel … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
3
1

Relationship

1
3

Authors

Journals

citations
Cited by 4 publications
(2 citation statements)
references
References 22 publications
0
2
0
Order By: Relevance
“…This allows users to write types like "int|string" to represent the union of integer and string. Huang et al 5 listed a group of languages that support union types, including Scala 3 6 , Flow 7 , TypeScript 8 , Ceylon 9 . Apart from them, the cue language 10 , a typed data description language, also contains union types with a set-theoretical interpretation.…”
Section: Related Workmentioning
confidence: 99%
“…This allows users to write types like "int|string" to represent the union of integer and string. Huang et al 5 listed a group of languages that support union types, including Scala 3 6 , Flow 7 , TypeScript 8 , Ceylon 9 . Apart from them, the cue language 10 , a typed data description language, also contains union types with a set-theoretical interpretation.…”
Section: Related Workmentioning
confidence: 99%
“…There have been many efforts to eliminate the explicit transitivity rule to obtain an algorithmic formulation [26,31,39]. Compared with the original F + i [7], we employ a different subtyping algorithm design, using splittable types [21]. This approach employs a type-splitting operation (B A C ) that converts a given type A to an equivalent intersection type…”
Section: Technical Challenges and Innovationsmentioning
confidence: 99%