%0 Unpublished work
%T Programming with union, intersection, and negation types
%+ Centre National de la Recherche Scientifique (CNRS)
%+ Institut de Recherche en Informatique Fondamentale (IRIF (UMR_8243))
%A Castagna, Giuseppe
%8 2021-10-29
%D 2021
%Z 2111.03354
%K Type-theory
%K Subtyping
%K Union types
%K Intersection types
%K Negation types
%K Polymorphism
%K Overloading
%K Semantic subtyping
%Z Computer Science [cs]/Programming Languages [cs.PL]Preprints, Working Papers, ...
%X In this essay, I present the advantages and, I dare say, the beauty of programming in a language with set-theoretic types, that is, types that include union, intersection, and negation type connectives. I show by several examples how set-theoretic types are necessary to type some common programming patterns, but also how they play a key role in typing several language constructs-from branching and pattern matching to function overloading and type-cases-very precisely. I start by presenting the theory of types known as semantic subtyping and extend it to include polymorphic types. Next, I discuss the design of languages that use these types. I start by defining a theoretical framework that covers all the examples given in the first part of the presentation. Since the system of the framework cannot be effectively implemented, I then describe three effective restrictions of this system: (i) a polymorphic language with explicitly-typed functions, (ii) an implicitly-typed polymorphic languageĆ la Hindley-Milner, and (iii) a monomorphic language that, by implementing classic union-elimination, precisely reconstructs intersection types for functions and implements a very general form of occurrence typing. I conclude the presentation with a short overview of other aspects of these languages, such as pattern matching, gradual typing, and denotational semantics.
%G English
%2 https://cnrs.hal.science/hal-03389659/document
%2 https://cnrs.hal.science/hal-03389659/file/main.pdf
%L hal-03389659
%U https://cnrs.hal.science/hal-03389659
%~ CNRS
%~ UNIV-PARIS
%~ UNIVERSITE-PARIS
%~ UP-SCIENCES
%~ TEST4-HALCNRS
%~ IRIF