On Type-Cases, Union Elimination, and Occurrence Typing
Résumé
We extend classic union and intersection type systems with a type-case construction and show that the
combination of the union elimination rule of the former and the typing rules for type-cases of our extension
encompasses occurrence typing. To apply this system in practice, we define a canonical form for the expressions
of our extension, called MSC-form. We show that an expression of the extension is typable if and only if its
MSC-form is, and reduce the problem of typing the latter to the one of reconstructing annotations for that
term. We provide a sound algorithm that performs this reconstruction and a proof-of-concept implementation
Origine | Fichiers éditeurs autorisés sur une archive ouverte |
---|