hix-0.8.0: Haskell/Nix development build tools
Safe HaskellNone
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 ('[] :: [Type]) -> NP Field ('[] :: [FieldK]) Source #

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

Defined in Hix.Class.SOP

Methods

sumFields :: NS (NP I) ('[] :: [[Type]]) -> NS (NP Field) ('[] :: [[FieldK]]) 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 :: FieldK) where Source #

Constructors

Field :: forall a (name :: Symbol). a -> Field ('FieldK name a) 

class ProdFields (info :: [FieldInfo]) (as :: [Type]) (fields :: [FieldK]) | 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 ('[] :: [Type]) -> NP Field ('[] :: [FieldK]) 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 :: [ConstructorInfo]) (ass :: [[Type]]) (fields :: [[FieldK]]) | 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) ('[] :: [[Type]]) -> NS (NP Field) ('[] :: [[FieldK]]) 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 :: [[FieldK]]) | 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 #