rel8-internal
Safe HaskellNone
LanguageHaskell2010

Rel8.Internal.Generic.Table.ADT

Documentation

class GSerializeADT (_Serialize :: Type -> Type -> Exp Constraint) (_Columns :: Type -> Exp HTable) (exprs :: Type -> Type) (rep :: Type -> Type) Source #

Minimal complete definition

gfromResultADT, gtoResultADT

Instances

Instances details
(htable ~ HLabel "tag" (HIdentity Tag), GSerializeADT' _Serialize _Columns htable exprs rep) => GSerializeADT _Serialize _Columns (M1 D meta exprs) (M1 D meta rep) Source # 
Instance details

Defined in Rel8.Internal.Generic.Table.ADT

Methods

gfromResultADT :: (forall expr a (proxy :: Type -> Type). Eval (_Serialize expr a) => proxy expr -> Eval (_Columns expr) Result -> a) -> GColumnsADT _Columns (M1 D meta exprs) Result -> M1 D meta rep x Source #

gtoResultADT :: (forall expr a (proxy :: Type -> Type). Eval (_Serialize expr a) => proxy expr -> a -> Eval (_Columns expr) Result) -> M1 D meta rep x -> GColumnsADT _Columns (M1 D meta exprs) Result Source #

type family GColumnsADT (_Columns :: Type -> Exp HTable) (rep :: Type -> Type) :: Context -> Type where ... Source #

Equations

GColumnsADT _Columns (M1 D _1 rep) = GColumnsADT' _Columns (HLabel "tag" (HIdentity Tag)) rep 

gfromResultADT :: GSerializeADT _Serialize _Columns exprs rep => (forall expr a (proxy :: Type -> Type). Eval (_Serialize expr a) => proxy expr -> Eval (_Columns expr) Result -> a) -> GColumnsADT _Columns exprs Result -> rep x Source #

gtoResultADT :: GSerializeADT _Serialize _Columns exprs rep => (forall expr a (proxy :: Type -> Type). Eval (_Serialize expr a) => proxy expr -> a -> Eval (_Columns expr) Result) -> rep x -> GColumnsADT _Columns exprs Result Source #

class GSerializeADT' (_Serialize :: Type -> Type -> Exp Constraint) (_Columns :: Type -> Exp HTable) (htable :: HTable) (exprs :: Type -> Type) (rep :: Type -> Type) Source #

Minimal complete definition

gfromResultADT', gtoResultADT', extract

Instances

Instances details
(htable' ~ GColumnsADT' _Columns htable exprs1, GSerializeADT' _Serialize _Columns htable exprs1 a, GSerializeADT' _Serialize _Columns htable' exprs2 b) => GSerializeADT' _Serialize _Columns htable (exprs1 :+: exprs2) (a :+: b) Source # 
Instance details

Defined in Rel8.Internal.Generic.Table.ADT

Methods

gfromResultADT' :: forall (context :: Type -> Type) x. context ~ Result => (forall expr a0 (proxy :: Type -> Type). Eval (_Serialize expr a0) => proxy expr -> Eval (_Columns expr) context -> a0) -> (htable Result -> Tag) -> GColumnsADT' _Columns htable (exprs1 :+: exprs2) context -> Maybe ((a :+: b) x)

gtoResultADT' :: forall (context :: Type -> Type) x. context ~ Result => (forall expr a0 (proxy :: Type -> Type). Eval (_Serialize expr a0) => proxy expr -> a0 -> Eval (_Columns expr) context) -> (Tag -> htable Result) -> Maybe ((a :+: b) x) -> GColumnsADT' _Columns htable (exprs1 :+: exprs2) context

extract :: forall (context :: Context). GColumnsADT' _Columns htable (exprs1 :+: exprs2) context -> htable context

(meta ~ 'MetaCons label _fixity _isRecord, KnownSymbol label) => GSerializeADT' _Serialize _Columns _htable (M1 C meta (U1 :: Type -> Type)) (M1 C meta (U1 :: Type -> Type)) Source # 
Instance details

Defined in Rel8.Internal.Generic.Table.ADT

Methods

gfromResultADT' :: forall (context :: Type -> Type) x. context ~ Result => (forall expr a (proxy :: Type -> Type). Eval (_Serialize expr a) => proxy expr -> Eval (_Columns expr) context -> a) -> (_htable Result -> Tag) -> GColumnsADT' _Columns _htable (M1 C meta (U1 :: Type -> Type)) context -> Maybe (M1 C meta (U1 :: Type -> Type) x)

gtoResultADT' :: forall (context :: Type -> Type) x. context ~ Result => (forall expr a (proxy :: Type -> Type). Eval (_Serialize expr a) => proxy expr -> a -> Eval (_Columns expr) context) -> (Tag -> _htable Result) -> Maybe (M1 C meta (U1 :: Type -> Type) x) -> GColumnsADT' _Columns _htable (M1 C meta (U1 :: Type -> Type)) context

extract :: forall (context :: Context). GColumnsADT' _Columns _htable (M1 C meta (U1 :: Type -> Type)) context -> _htable context

(HTable (GColumns _Columns exprs), GSerialize _Serialize _Columns exprs rep, meta ~ 'MetaCons label _fixity _isRecord, KnownSymbol label, GColumnsADT' _Columns htable (M1 C ('MetaCons label _fixity _isRecord) exprs) ~ HProduct htable (HLabel label (HNullify (GColumns _Columns exprs)))) => GSerializeADT' _Serialize _Columns htable (M1 C meta exprs) (M1 C meta rep) Source # 
Instance details

Defined in Rel8.Internal.Generic.Table.ADT

Methods

gfromResultADT' :: forall (context :: Type -> Type) x. context ~ Result => (forall expr a (proxy :: Type -> Type). Eval (_Serialize expr a) => proxy expr -> Eval (_Columns expr) context -> a) -> (htable Result -> Tag) -> GColumnsADT' _Columns htable (M1 C meta exprs) context -> Maybe (M1 C meta rep x)

gtoResultADT' :: forall (context :: Type -> Type) x. context ~ Result => (forall expr a (proxy :: Type -> Type). Eval (_Serialize expr a) => proxy expr -> a -> Eval (_Columns expr) context) -> (Tag -> htable Result) -> Maybe (M1 C meta rep x) -> GColumnsADT' _Columns htable (M1 C meta exprs) context

extract :: forall (context :: Context). GColumnsADT' _Columns htable (M1 C meta exprs) context -> htable context

type family GColumnsADT' (_Columns :: Type -> Exp HTable) (htable :: HTable) (rep :: Type -> Type) :: Context -> Type where ... Source #

Equations

GColumnsADT' _Columns htable (a :+: b) = GColumnsADT' _Columns (GColumnsADT' _Columns htable a) b 
GColumnsADT' _Columns htable (M1 C ('MetaCons _1 _2 _3) (U1 :: Type -> Type)) = htable 
GColumnsADT' _Columns htable (M1 C ('MetaCons label _1 _2) rep) = HProduct htable (HLabel label (HNullify (GColumns _Columns rep)))