Affiliation:
1. University of Iowa, USA
Abstract
We present a novel approach to generic programming over extensible data types. Row types capture the
structure of records and variants, and can be used to express record and variant subtyping, record extension, and modular composition of case branches. We extend row typing to capture generic programming over rows themselves, capturing patterns including lifting operations to records and variations from their component types, and the duality between cases blocks over variants and records of labeled functions, without placing specific requirements on the fields or constructors present in the records and variants. We formalize our approach in System R𝜔, an extension of F𝜔 with row types, and give a denotational semantics for (stratified) R𝜔 in Agda.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference51 articles.
1. Composing and decomposing data types
2. Bernard Berthomieu and Camille le Moniès de Sagazan. 1995. A Calculus of Tagged Types, with applications to process languages. In Workshop on types for program analysis. Aarhus.
3. Extensible programming with first-class cases
4. Ur
5. An optimizing compiler for a purely functional web-application language
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献