large-records-0.3: Efficient compilation for large records, linear in the size of the record
Safe HaskellNone
LanguageHaskell2010

Data.Record.Plugin

Description

Support for scalable large records

Usage

{-# OPTIONS_GHC -fplugin=Data.Record.Plugin #-}

{-# ANN type B largeRecord #-}
data B a = B {a :: a, b :: String}
  deriving stock (Show, Eq, Ord)

See LargeRecordOptions for the list of all possible annotations.

Usage with record-dot-preprocessor

There are two important points. First, the order of plugins matters — record-dot-preprocessor has to be listed before this plugin (and correspondingly will be applied after this plugin):

{-# OPTIONS_GHC -fplugin=RecordDotPreprocessor -fplugin=Data.Record.Plugin #-}

Second, you will want at least version 0.2.14.

Documentation