cabal-version: 2.4 name: large-records version: 0.4 x-revision: 1 synopsis: Efficient compilation for large records, linear in the size of the record description: 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. bug-reports: https://github.com/well-typed/large-records/issues license: BSD-3-Clause author: Edsko de Vries maintainer: edsko@well-typed.com category: Generics extra-source-files: CHANGELOG.md tested-with: GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.7 || ==9.4.4 source-repository head type: git location: https://github.com/well-typed/large-records library exposed-modules: Data.Record.Plugin Data.Record.Plugin.Options Data.Record.Plugin.Runtime Data.Record.Plugin.WithRDP Data.Record.Overloading other-modules: Data.Record.Internal.GHC.Fresh Data.Record.Internal.GHC.Shim Data.Record.Internal.GHC.TemplateHaskellStyle Data.Record.Internal.Plugin.CodeGen Data.Record.Internal.Plugin.Exception Data.Record.Internal.Plugin.Names Data.Record.Internal.Plugin.Options Data.Record.Internal.Plugin.Record build-depends: base >= 4.13 && < 4.18 , containers >= 0.6.2 && < 0.7 , mtl >= 2.2.1 && < 2.3 , primitive >= 0.7 && < 0.9 , syb >= 0.7 && < 0.8 , record-hasfield >= 1.0 && < 1.1 -- large-generics 0.2 starts using 'SmallArray' instead of 'Vector' , large-generics >= 0.2 && < 0.3 -- transformers 0.5.6 introduces Writer.CPS , transformers >= 0.5.6 && < 0.7 -- 0.2.16 introduces support for ghc 9.4 , record-dot-preprocessor >= 0.2.16 && < 0.3 -- whatever versions are bundled with ghc , ghc , template-haskell hs-source-dirs: src default-language: Haskell2010 default-extensions: NoStarIsType ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wincomplete-record-updates -Wpartial-fields -Widentities -Wredundant-constraints -Wmissing-export-lists if impl(ghc >= 8.10) ghc-options: -Wunused-packages test-suite test-large-records type: exitcode-stdio-1.0 main-is: TestLargeRecords.hs other-modules: Test.Record.Sanity.CodeGen Test.Record.Sanity.Derive Test.Record.Sanity.EqualFieldTypes Test.Record.Sanity.GhcGenerics Test.Record.Sanity.HigherKinded Test.Record.Sanity.HKD Test.Record.Sanity.NamedWildCards Test.Record.Sanity.Operators Test.Record.Sanity.OverloadedRecordUpdate Test.Record.Sanity.OverloadingNoDRF Test.Record.Sanity.PatternMatch Test.Record.Sanity.QualifiedImports Test.Record.Sanity.QualifiedImports.A Test.Record.Sanity.QualifiedImports.B Test.Record.Sanity.RDP.SingleModule Test.Record.Sanity.RDP.SplitModule Test.Record.Sanity.RDP.SplitModule.RecordDef Test.Record.Sanity.RecordConstruction Test.Record.Sanity.Strictness Test.Record.Sanity.StrictnessStrictData Test.Record.Util build-depends: base , large-records , generic-deriving , large-generics , mtl , newtype , record-dot-preprocessor , record-hasfield , tasty , tasty-hunit , template-haskell , transformers hs-source-dirs: test default-language: Haskell2010 ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wincomplete-record-updates -Wpartial-fields -Widentities