Bidirectional Typing

52Citations
Citations of this article
45Readers
Mendeley users who have this article in their library.

Abstract

Bidirectional typing combines two modes of typing: type checking, which checks that a program satisfies a known type, and type synthesis, which determines a type from the program. Using checking enables bidirectional typing to support features for which inference is undecidable; using synthesis enables bidirectional typing to avoid the large annotation burden of explicitly typed languages. In addition, bidirectional typing improves error locality. We highlight the design principles that underlie bidirectional type systems, survey the development of bidirectional typing from the prehistoric period before Pierce and Turner's local type inference to the present day, and provide guidance for future investigations.

Author supplied keywords

Cite

CITATION STYLE

APA

Dunfield, J., & Krishnaswami, N. (2022, January 31). Bidirectional Typing. ACM Computing Surveys. Association for Computing Machinery. https://doi.org/10.1145/3450952

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free