Jump to content

Draft talk:Unison (programming language)

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mechachleopteryx (talk | contribs) at 16:54, 22 July 2023 (Unison resources). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
WikiProject iconComputer science Draft‑class
WikiProject iconThis draft is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
DraftThis draft does not require a rating on Wikipedia's content assessment scale.
Things you can help WikiProject Computer science with:

WikiProject iconComputing: Networking Draft‑class
WikiProject iconThis draft is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
DraftThis draft does not require a rating on Wikipedia's content assessment scale.
Taskforce icon
This draft is supported by Networking task force.
WikiProject iconCryptography: Computer science Draft‑class
WikiProject iconThis draft is within the scope of WikiProject Cryptography, a collaborative effort to improve the coverage of Cryptography on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
DraftThis draft does not require a rating on Wikipedia's content assessment scale.
Taskforce icon
This draft is supported by WikiProject Computer science.

Unison resources

Talks

Background

Jana Dunfield, Neelakantan R. Krishnaswami

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.


Mechachleopteryx (talk) 23:59, 21 July 2023 (UTC)[reply]