Data-Codata Symmetry and its Interaction with Evaluation Order
David Binder, Julian Jabs, Ingo Skupin, Klaus Ostermann

TL;DR
This paper introduces a fully symmetric language design that independently manages data/codata polarity and evaluation order, restoring desirable properties and simplifying transformations like defunctionalization.
Contribution
It proposes a novel language framework based on sequent calculus that separates and independently controls polarity and evaluation order, unifying defunctionalization and refunctionalization.
Findings
Restores $ta$ expansion laws through independent attributes.
Unifies defunctionalization and refunctionalization into a single algorithm.
Demonstrates improved symmetry between data and codata types.
Abstract
Data types and codata types are, as the names suggest, often seen as duals of each other. However, most programming languages do not support both of them in their full generality, or if they do, they are still seen as distinct constructs with separately defined type-checking, compilation, etc. Rendel et al. were the first to propose variants of two standard program transformations, de- and refunctionalization, as a test to gauge and improve the symmetry between data and codata types. However, in previous works, codata and data were still seen as separately defined language constructs, with de- and refunctionalization being defined as similar but separate algorithms. These works also glossed over interactions between the aforementioned transformations and evaluation order, which leads to a loss of desirable expansion equalities. We argue that the failure of complete symmetry is…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Advanced Database Systems and Queries · Semantic Web and Ontologies
