Affiliation:
1. CNRS, France / University of Paris Diderot, France
2. ENS Cachan, France
Abstract
We propose a type system for functional languages with gradual types and set-theoretic type connectives and prove its soundness. In particular, we show how to lift the definition of the domain and result type of an application from non-gradual types to gradual ones and likewise for the subtyping relation. We also show that deciding subtyping for gradual types can be reduced in linear time to deciding subtyping on non-gradual types and that the same holds true for all subtyping-related decision problems that must be solved for type inference. More generally, this work not only enriches gradual type systems with unions and intersections and with the type precision that arise from their use, but also proposes and advocates a new style of gradual types programming where union and intersection types are used by programmers to instruct the system to perform fewer dynamic checks.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference24 articles.
1. CDuce
2. Giuseppe Castagna. 2015. Covariance and Contravariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers). (2015). Unpublished manuscript available at the author’s web page. Giuseppe Castagna. 2015. Covariance and Contravariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers). (2015). Unpublished manuscript available at the author’s web page.
3. A Calculus for Overloaded Functions with Subtyping
4. Polymorphic Functions with Set-Theoretic Types
5. Polymorphic functions with set-theoretic types
Cited by
39 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Same Same but Different: A Comparative Analysis of Static Type Checkers in Erlang;Proceedings of the 23rd ACM SIGPLAN International Workshop on Erlang;2024-08-28
2. Programming with Union, Intersection, and Negation Types;The French School of Programming;2023-10-11
3. A Gradual Probabilistic Lambda Calculus;Proceedings of the ACM on Programming Languages;2023-04-06
4. Typed–Untyped Interactions: A Comparative Analysis;ACM Transactions on Programming Languages and Systems;2023-03-05
5. The StaDyn programming language;SoftwareX;2022-12