hix-0.7.1: Haskell/Nix development build tools
Safe HaskellSafe-Inferred
LanguageGHC2021

Hix.Class.SOP

Documentation

data FieldK Source #

Constructors

FieldK 

Fields

Instances

Instances details
ProdFields ('[] :: [FieldInfo]) ('[] :: [Type]) ('[] :: [FieldK]) Source # 
Instance details

Defined in Hix.Class.SOP

Methods

prodFields :: NP I '[] -> NP Field '[] Source #

SumFields ('[] :: [ConstructorInfo]) ('[] :: [[Type]]) ('[] :: [[FieldK]]) Source # 
Instance details

Defined in Hix.Class.SOP

Methods

sumFields :: NS (NP I) '[] -> NS (NP Field) '[] Source #

ProdFields info as fields => ProdFields ('FieldInfo name ': info) (a ': as) ('FieldK name a ': fields) Source # 
Instance details

Defined in Hix.Class.SOP

Methods

prodFields :: NP I (a ': as) -> NP Field ('FieldK name a ': fields) Source #

(ProdFields info as conFields, SumFields cons ass fields) => SumFields ('Record con info ': cons) (as ': ass) (conFields ': fields) Source # 
Instance details

Defined in Hix.Class.SOP

Methods

sumFields :: NS (NP I) (as ': ass) -> NS (NP Field) (conFields ': fields) Source #

data Field k where Source #

Constructors

Field :: a -> Field ('FieldK name a) 

class ProdFields info as fields | info as -> fields where Source #

Methods

prodFields :: NP I as -> NP Field fields Source #

Instances

Instances details
ProdFields ('[] :: [FieldInfo]) ('[] :: [Type]) ('[] :: [FieldK]) Source # 
Instance details

Defined in Hix.Class.SOP

Methods

prodFields :: NP I '[] -> NP Field '[] Source #

ProdFields info as fields => ProdFields ('FieldInfo name ': info) (a ': as) ('FieldK name a ': fields) Source # 
Instance details

Defined in Hix.Class.SOP

Methods

prodFields :: NP I (a ': as) -> NP Field ('FieldK name a ': fields) Source #

class SumFields cons ass fields | cons ass -> fields where Source #

Methods

sumFields :: NS (NP I) ass -> NS (NP Field) fields Source #

Instances

Instances details
SumFields ('[] :: [ConstructorInfo]) ('[] :: [[Type]]) ('[] :: [[FieldK]]) Source # 
Instance details

Defined in Hix.Class.SOP

Methods

sumFields :: NS (NP I) '[] -> NS (NP Field) '[] Source #

(ProdFields info as conFields, SumFields cons ass fields) => SumFields ('Record con info ': cons) (as ': ass) (conFields ': fields) Source # 
Instance details

Defined in Hix.Class.SOP

Methods

sumFields :: NS (NP I) (as ': ass) -> NS (NP Field) (conFields ': fields) Source #

class ToFields a fields | a -> fields where Source #

Methods

toFields :: a -> SOP Field fields Source #

Instances

Instances details
(Generic a, GFrom a, 'ADT mod name cons sni ~ GDatatypeInfoOf a, ass ~ GCode a, SumFields cons ass fields) => ToFields a fields Source # 
Instance details

Defined in Hix.Class.SOP

Methods

toFields :: a -> SOP Field fields Source #