Affiliation:
1. Oregon Graduate Institute
2. Utrecht University
Abstract
Record calculi use labels to distinguish between the elements of products and sums. This paper presents a novel variation,
type-indexed rows
, in which labels are discarded and elements are indexed by their type alone. The calculus, λ
TIR
, can express tuples, recursive datatypes, monomorphic records, polymorphic extensible records, and closed-world style type-based overloading. Our motivating application of λ
TIR
, however, is to encode the "choice" types of XML, and the "unordered tuple" types of SGML. Indeed, λ
TIR
is the kernel of the language XMλ, a lazy functional language with direct support for XML types ("DTDs") and terms ("documents").The system is built from rows, equality constraints, insertion constraints and constrained, or qualified, parametric polymorphism. The test for constraint satisfaction is complete, and for constraint entailment is only mildly incomplete. We present a type checking algorithm, and show how λ
TIR
may be implemented by a type-directed translation which replaces type-indexing by conventional natural-number indexing. Though not presented in this paper, we have also developed a constraint simplification algorithm and type inference system.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Making a Type Difference: Subtraction on Intersection Types as Generalized Record Operations;Proceedings of the ACM on Programming Languages;2023-01-09
2. Towards Efficient Adjustment of Effect Rows;Lecture Notes in Computer Science;2022
3. Types for Flexible Objects;Programming Languages and Systems;2014
4. Programming errors in traversal programs over structured data;Science of Computer Programming;2013-10
5. Extensible effects;Proceedings of the 2013 ACM SIGPLAN symposium on Haskell - Haskell '13;2013