Has anyone formalized Pollack's Dependently Typed Records in Type Theory ? Agda would be preferred, but anyone close to MLTT would work. Weaker versions would be fine too, i.e. what Luo dubs 'dependently kinded records would be appreciated as well.

Full reference:

author="Pollack, Robert",
title="Dependently Typed Records in Type Theory",
journal="Formal Aspects of Computing",
abstract="The language Pebble of Burstall and Lampson proposed dependent types as the underlying principle in a unified framework to explain facilities for programming in the large, such as modules and signatures, as well as for programming in the small. This proposal soon extended to large scale formal proof development as well. In fact, the functional approach to modularity has turned out to be a hard problem, which is still far from a fully satisfactory solution. This paper discusses aspects of this approach, including representations of records, informative signatures, sharing, and subtyping. My main contribution in this paper is to show that structures with dependent types and manifest fields (roughly ML style modules) are internally definable in a type theoretic framework extended with inductive-recursive definition. This shows that powerful modules follow from general principles without module-specific assumptions.",

1 Answer 1


I do not know how much of the paper it covers but we do have a module based on it in the standard library:


  • 1
    $\begingroup$ This is extremely close to what I want/need. I was hoping to internalize disjointness conditions, rather than use shadowing (as Pollack, and thus the code, does). Thus my interest in Data.List.Fresh. $\endgroup$ Sep 3, 2019 at 12:02
  • $\begingroup$ By the way Fresh is nothing new, a version of it appears in Catarina Coquand's link.springer.com/article/10.1023/A:1019964114625 (I'll update the PR to give credits) $\endgroup$
    – gallais
    Sep 3, 2019 at 12:48
  • $\begingroup$ For my use cases, not-new is better; too many innovations at once is suspicious. But thanks for the reference. $\endgroup$ Sep 3, 2019 at 12:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.