2019
DOI: 10.1145/3290322
|View full text |Cite
|
Sign up to set email alerts
|

Sound and complete bidirectional typechecking for higher-rank polymorphism with existentials and indexed types

Abstract: Bidirectional typechecking, in which terms either synthesize a type or are checked against a known type, has become popular for its applicability to a variety of type systems, its error reporting, and its ease of implementation. Following principles from proof theory, bidirectional typing can be applied to many type constructs. The principles underlying a bidirectional approach to indexed types (generalized algebraic datatypes) are less clear. Building on proof-theoretic treatments of equality, we give a decla… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
18
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
3
2
1

Relationship

0
6

Authors

Journals

citations
Cited by 20 publications
(18 citation statements)
references
References 46 publications
(40 reference statements)
0
18
0
Order By: Relevance
“…The synthesizing judgement form Γ e ⇒ C can be read as, "the typing context Γ and term e synthesize the computation type C ." Specifically, the algorithm computes the type C , when given Γ and e. For the core forms of λ-VMF, the bidirectional rules for values and computations follow the usual patterns found in bidirectional type systems [10,16]. We show several standard-looking rules, sub, lam, app and annot.…”
Section: Gradual Typing For Simple Databasesmentioning
confidence: 81%
“…The synthesizing judgement form Γ e ⇒ C can be read as, "the typing context Γ and term e synthesize the computation type C ." Specifically, the algorithm computes the type C , when given Γ and e. For the core forms of λ-VMF, the bidirectional rules for values and computations follow the usual patterns found in bidirectional type systems [10,16]. We show several standard-looking rules, sub, lam, app and annot.…”
Section: Gradual Typing For Simple Databasesmentioning
confidence: 81%
“…In our prototype implementation of BiRelCost, we use a custom algorithm to eliminate these quantifiers, which works well. An alternative approach, used for example in liquid types [42] and by Dunfield and Krishnaswami for GADTs [23], is to engineer or restrict the type system so that generated constraints do not have existential quantifiers. In the context of bidirectional type checking, this seems fundamentally difficult for quantitative effects like costs.…”
Section: Discussionmentioning
confidence: 99%
“…However, the idea was popularized only more recently by Pierce and Turner [37]. The technique has shown great applicability-it has been used for dependent types [16], indexed refinement types [43,44], intersection and union types [20,24], higher-rank polymorphism [22,23,35], contextual modal types [36], algebraic effect handlers [29] and gradual typing [41]. Our approach is inspired by many of these papers, in particular DML [43,44], but departs in the technical design of the algorithmic type system due to new challenges offered by relational and modal types, and costs.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…A more flexible system could be provided by arbitrary rank quantification rather than the ML-style type schemes that Granule features, e.g. via the recent bidirectional results of Dunfield and Krishnaswami [2019]. Even more attractive is a generalisation of our system to full Martin-Löf-style dependent types.…”
Section: Further Work and Conclusionmentioning
confidence: 99%