Types and programming languages
Types and programming languages
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
What do types mean?: from intrinsic to extrinsic semantics
Programming methodology
CDuce: an XML-centric general-purpose language
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A calculus with polymorphic and polyvariant flow types
Journal of Functional Programming
Polymorphic regular tree types and patterns
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Intersection-types à la Church
Information and Computation
A typed lambda calculus with intersection types
Theoretical Computer Science
Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation types
Journal of the ACM (JACM)
XHaskell --- Adding Regular Expression Types to Haskell
Implementation and Application of Functional Languages
Parametric polymorphism for XML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Set-theoretic foundation of parametric polymorphism and subtyping
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
This article is the first part of a two articles series about a calculus with higher-order polymorphic functions, recursive types with arrow and product type constructors and set-theoretic type connectives (union, intersection, and negation). 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 define an explicitly-typed lambda-calculus with intersection types and an efficient evaluation model for it. In the second part, presented in a companion paper, we define 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. The work presented in the two articles provides the theoretical foundations and technical machinery needed to design and implement higher-order polymorphic functional languages for semi-structured data.