Polymorphic Functions with Set-Theoretic Types. Part 1: Syntax, Semantics, and Evaluation

Abstract : We define and study the type system, local type inference, and execution model for a calculus with higher-order polymorphic functions, recursive types with arrow and product type constructors and set-theoretic type connectives (union, intersection, and negation). This work provides the theoretical foundations and technical machinery needed to design and implement higher-order polymorphic functional languages for semi-structured data and is presented in two parts. In this first part we define and study the explicitly-typed version of the calculus in which type instantiation is driven by explicit instantiation annotations. In particular, we show why this requires to solve the longstanding problem of the definition of an explicitly-typed λ-calculus with intersection types, we solve it, and define an efficient evaluation model for it. In the second part, described in a companion paper, we present a local type inference system that allows the programmer to omit explicit instantiation annotations, and a type reconstruction system that allows the programmer to omit explicit type annotations.
Document type :
Conference papers
Liste complète des métadonnées

https://hal.archives-ouvertes.fr/hal-00907166
Contributor : Giuseppe Castagna <>
Submitted on : Thursday, November 21, 2013 - 9:02:05 AM
Last modification on : Friday, January 4, 2019 - 5:32:59 PM

Identifiers

Citation

Giuseppe Castagna, Kim Nguyen, Zhiwu Xu, Hyeonseung Im, Sergueï Lenglet, et al.. Polymorphic Functions with Set-Theoretic Types. Part 1: Syntax, Semantics, and Evaluation. POPL '14, 41th ACM Symposium on Principles of Programming Languages, Jan 2014, San Diego, United States. pp.5-17, ⟨10.1145/2535838.2535840⟩. ⟨hal-00907166⟩

Share

Metrics

Record views

396