English

Generic Zero-Cost Reuse for Dependent Types

Programming Languages 2018-07-11 v3

Abstract

Dependently typed languages are well known for having a problem with code reuse. Traditional non-indexed algebraic datatypes (e.g. lists) appear alongside a plethora of indexed variations (e.g. vectors). Functions are often rewritten for both non-indexed and indexed versions of essentially the same datatype, which is a source of code duplication. We work in a Curry-style dependent type theory, where the same untyped term may be classified as both the non-indexed and indexed versions of a datatype. Many solutions have been proposed for the problem of dependently typed reuse, but we exploit Curry-style type theory in our solution to not only reuse data and programs, but do so at zero-cost (without a runtime penalty). Our work is an exercise in dependently typed generic programming, and internalizes the process of zero-cost reuse as the identity function in a Curry-style theory.

Keywords

Cite

@article{arxiv.1803.08150,
  title  = {Generic Zero-Cost Reuse for Dependent Types},
  author = {Larry Diehl and Denis Firsov and Aaron Stump},
  journal= {arXiv preprint arXiv:1803.08150},
  year   = {2018}
}

Comments

Additional section on Generic Relational Reuse

R2 v1 2026-06-23T01:01:10.103Z