records-edsl-core-0.1.0: Records/EDSL/Deriving/Stock.hs
module Records.EDSL.Deriving.Stock where
import Language.Haskell.TH qualified as TH
import Records.EDSL.Deriving.Type
import Records.EDSL.Description
import Relude
deriveEq :: Deriver
deriveEq = deriver #stock_Eq \RecordDesc {typeName} ->
[d|deriving stock instance Eq $(TH.conT typeName)|]
deriveOrd :: Deriver
deriveOrd = deriver #stock_Ord \RecordDesc {typeName} ->
[d|deriving stock instance Ord $(TH.conT typeName)|]
deriveShow :: Deriver
deriveShow = deriver #stock_Show \RecordDesc {typeName} ->
[d|deriving stock instance Show $(TH.conT typeName)|]
deriveGeneric :: Deriver
deriveGeneric = deriver #stock_Generic \RecordDesc {typeName} ->
[d|deriving stock instance Generic $(TH.conT typeName)|]