Pith. sign in

Complete and Easy Bidirectional Typechecking for Higher-Rank Polymorphism

1 Pith paper cite this work. Polarity classification is still indexing.

1 Pith paper citing it
abstract

Bidirectional typechecking, in which terms either synthesize a type or are checked against a known type, has become popular for its scalability (unlike Damas-Milner type inference, bidirectional typing remains decidable even for very expressive type systems), its error reporting, and its relative ease of implementation. Following design principles from proof theory, bidirectional typing can be applied to many type constructs. The principles underlying a bidirectional approach to polymorphism, however, are less obvious. We give a declarative, bidirectional account of higher-rank polymorphism, grounded in proof theory; this calculus enjoys many properties such as eta-reduction and predictability of annotations. We give an algorithm for implementing the declarative system; our algorithm is remarkably simple and well-behaved, despite being both sound and complete.

fields

cs.PL 1

years

2019 1

verdicts

CONDITIONAL 1

representative citing papers

Bidirectional Typing

cs.PL · 2019-08-16 · conditional · novelty 4.0

A survey and tutorial that distills the design principles behind bidirectional typing, presents a recipe for designing such systems, and argues that bidirectionality is about information flow rather than polarized logic.

citing papers explorer

Showing 1 of 1 citing paper.

  • Bidirectional Typing cs.PL · 2019-08-16 · conditional · none · ref 2013 · internal anchor

    A survey and tutorial that distills the design principles behind bidirectional typing, presents a recipe for designing such systems, and argues that bidirectionality is about information flow rather than polarized logic.