u/mttdin r/ProgrammingLanguages • Recommends
#bidirectionaltypechecking#typeinference#dependenttypes
Bidirectional Type Checking
2.9K subscribers • 28 videos on Hallway
- Recommended by 1 person: 1 in engineering communities.
- Presented by David Christiansen
Intermediate. Assumes working knowledge.
8.5K views7 years ago1 recommendation
Programming languagesComputer scienceLanguage design and type systemsCompilers and interpreters
David Christiansen explains the history, mechanics, and benefits of bidirectional type checking for implementing robust type systems.
Compose NYC 2019 Speaker: David Christiansen When implementing a type checker, one must answer two questions: how to compare types for sameness, be it a subsumption check for subtyping, a unification algorithm for type inference, or normalization for dependent types, and when to check for sameness. The way most type systems are written provides little guidance on this question. One solution to the problem is bidirectional type checking, in which the typing judgment is split into two modes, one that checks an expression against a given type, and one that concocts a type for an expression. Bidirectional type checking tends to require a relatively low burden of annotations, it scales to powerful type systems, and it tends to do a good job associating type errors with source locations. I’ll discuss the history of bidirectional type checking, show how to bidirectionalize known type systems, and walk through some implementations.Why it's here
1 person recommends thisMoments people linked to
u/Disjunction181in r/ProgrammingLanguages • Mentions
On “Algorithms for typechecking untagged unions, intersections, and dependent types?”
u/bjzabaPikelet, Unnamed Binary DDLin r/ProgrammingLanguages • Mentions
On “Typing the empty list”
u/superstar64in r/ProgrammingLanguages • Mentions
On “Does anyone know of resources or languages which involve inferring types from function behavior?”
u/oa74in r/ProgrammingLanguages • Mentions
On “Any papers/ideas/suggestions/pointers on adding refinement types to a PL with Hindley-Miller like type system? ”
u/sebamestrein r/ProgrammingLanguages • Mentions
On “Good textbook with implementations of OO type system?”
u/Roboguy2in r/ProgrammingLanguages • Mentions
On “Questions About Custom Types”