well-typed/large-records

Library to support efficient compilation of large records (linear in the number of record fields)

Haskell

51

421 commits

updated May 20, 2026

See the code

README

Scalable records in Haskell

This repository contains all of the work on scalable records in Haskell:

  • large-records provides scalable named records (records that are declared before they are used, just like standard Haskell records).
  • large-anon provides scalable anonymous records.
  • large-generics is the generics library that supports both large-records and large-anon.
  • beam-large-records provides integration for large-records with beam.
  • typelet provides experimental support for type-level sharing.
  • large-records-benchmarks contains a large number of benchmarks measuring the (compile time) performance of the large-records library.

For a detailed overview on compile time performance of large-records, see the benchmarks report.

The problems addressed by these libraries are discussed in a series of blog posts:

as well as in various presentations:

Contributors

edsko

359 commits

phadej

46 commits

sheaf

3 commits

isaac-uptrust

2 commits

well-typed/large-records

Library to support efficient compilation of large records (linear in the number of record fields)

Haskell

51

421 commits

updated May 20, 2026

See the code

README

Scalable records in Haskell

This repository contains all of the work on scalable records in Haskell:

  • large-records provides scalable named records (records that are declared before they are used, just like standard Haskell records).
  • large-anon provides scalable anonymous records.
  • large-generics is the generics library that supports both large-records and large-anon.
  • beam-large-records provides integration for large-records with beam.
  • typelet provides experimental support for type-level sharing.
  • large-records-benchmarks contains a large number of benchmarks measuring the (compile time) performance of the large-records library.

For a detailed overview on compile time performance of large-records, see the benchmarks report.

The problems addressed by these libraries are discussed in a series of blog posts:

as well as in various presentations:

Contributors

edsko

359 commits

phadej

46 commits

sheaf

3 commits

isaac-uptrust

2 commits

Languages

Haskell

97.4%

Gnuplot

2.3%