/large-records

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

Primary LanguageHaskell

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: