2018
DOI: 10.1145/3276504
|View full text |Cite
|
Sign up to set email alerts
|

The root cause of blame: contracts for intersection and union types

Abstract: Gradual typing has emerged as the tonic for programmers with a thirst for a blend of static and dynamic typing. Contracts provide a lightweight form of gradual typing as they can be implemented as a library, rather than requiring a gradual type system.Intersection and union types are well suited to static and dynamic languages: intersection encodes overloaded functions; union encodes uncertain data arising from branching code. We extend the untyped lambda calculus with contracts for monitoring higher-order int… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
12
0

Year Published

2019
2019
2022
2022

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 10 publications
(12 citation statements)
references
References 30 publications
0
12
0
Order By: Relevance
“…Blame also plays an important role in gradual typing [Ahmed et al 2009;Garcia 2013;Igarashi et al 2017;Siek et al 2009Siek et al , 2015aSiek and Wadler 2010;Vitousek et al 2014;Williams et al 2018]. We anticipate that the experimental design we present is also applicable in that setting to explore and evaluate design strategies.…”
Section: Contracts and Blamementioning
confidence: 86%
“…Blame also plays an important role in gradual typing [Ahmed et al 2009;Garcia 2013;Igarashi et al 2017;Siek et al 2009Siek et al , 2015aSiek and Wadler 2010;Vitousek et al 2014;Williams et al 2018]. We anticipate that the experimental design we present is also applicable in that setting to explore and evaluate design strategies.…”
Section: Contracts and Blamementioning
confidence: 86%
“…The wrappers monitor interactions between a library and a client, and if a failure occurs then blame indicates whether it is the library or the client that has failed to conform to the declared types. TypeScript TNG relies upon an equivalent of the rule for casting functions in λB, but goes beyond our work in supporting union types (Williams et al, 2017(Williams et al, , 2018. Abadi et al (1991) study an early notion of type Dynamic.…”
Section: Systems That Use Gradual Typingmentioning
confidence: 98%
“…Therefore, the question of bringing union to contracts is natural, and have indeed been studied (e.g. [14,22]).…”
Section: Unions a Union Typementioning
confidence: 99%
“…In particular, both Type-Script [9] and MyPy [7], use union types to model the frequent practice to use the value null (None in Python) to represent an absent optional value. This is why the gradual typing literature, concerned with formalising the interplay between static and dynamic type systems, has been quite interested in union types [10,14,17,20,22].…”
Section: Introductionmentioning
confidence: 99%