large-records: Efficient compilation for large records, linear in the size of the record

[ bsd3, generics, library ] [ Propose Tags ] [ Report a vulnerability ]

For many reasons, the internal code generated for modules that contain records is quadratic in the number of record fields. For large records (more than 30 fields, say), this can become problematic, leading to large compilation times and high memory requirements for ghc. The large-records library provides a way to define records that is guaranteed to result in ghc core that is linear in the number of record fields.

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.2.0.0, 0.2.1.0, 0.3, 0.4, 0.4.1, 0.4.2
Change log CHANGELOG.md
Dependencies base (>=4.14 && <4.19), containers (>=0.6.2 && <0.8), ghc (>=8.10 && <9.7), large-generics (>=0.2 && <0.3), mtl (>=2.2.1 && <2.4), primitive (>=0.7.3 && <0.10), record-dot-preprocessor (>=0.2.16 && <0.3), record-hasfield (>=1.0 && <1.1), syb (>=0.7 && <0.8), template-haskell (>=2.16 && <2.21), transformers (>=0.5.6 && <0.7) [details]
Tested with ghc ==8.10.7 || ==9.2.8 || ==9.4.8 || ==9.6.6
License BSD-3-Clause
Author Edsko de Vries
Maintainer edsko@well-typed.com
Category Generics
Bug tracker https://github.com/well-typed/large-records/issues
Source repo head: git clone https://github.com/well-typed/large-records
Uploaded by EdskoDeVries at 2024-10-15T13:18:40Z
Distributions NixOS:0.4.2
Reverse Dependencies 1 direct, 1 indirect [details]
Downloads 776 total (33 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-10-20 [all 1 reports]