record-encode-0.2.3: Generic encoding of records

Safe HaskellNone
LanguageHaskell2010

Data.Record.Encode.Generics

Synopsis

Documentation

gindex :: SOP f xs -> Int Source #

Compute the structural index of a value of a sum type via its Generic representation e.g.:

>>> data S = Sa | Sb | Sc deriving (Eq, Show, G.Generic)
>>> instance Generic S
>>> gindex $ from Sb
1

class GVariants (f :: * -> *) where Source #

Counts the number of outermost constructors ("variants" of a type)

Methods

vars :: proxy f -> Int Source #

Instances
GVariants (V1 :: Type -> Type) Source # 
Instance details

Defined in Data.Record.Encode.Generics

Methods

vars :: proxy V1 -> Int Source #

(GVariants f, GVariants g) => GVariants (f :+: g) Source # 
Instance details

Defined in Data.Record.Encode.Generics

Methods

vars :: proxy (f :+: g) -> Int Source #

GVariants f => GVariants (M1 D m f) Source # 
Instance details

Defined in Data.Record.Encode.Generics

Methods

vars :: proxy (M1 D m f) -> Int Source #

GVariants (M1 C m f) Source # 
Instance details

Defined in Data.Record.Encode.Generics

Methods

vars :: proxy (M1 C m f) -> Int Source #

gnconstructors :: forall a. (Generic a, GVariants (Rep a)) => Proxy a -> Int Source #

Counts the number of outermost constructors