rel8-internal
Safe HaskellNone
LanguageHaskell2010

Rel8.Internal.Generic.Table

Documentation

data GGSerialize (a :: Algebra) (b :: Type -> Type -> Exp Constraint) (c :: Type -> Exp HTable) (d :: Type -> Type) (e :: Type -> Type) f Source #

Instances

Instances details
type Eval (GGSerialize 'Product _Serialize _Columns exprs rep :: Constraint -> Type) Source # 
Instance details

Defined in Rel8.Internal.Generic.Table

type Eval (GGSerialize 'Product _Serialize _Columns exprs rep :: Constraint -> Type) = GSerialize _Serialize _Columns exprs rep
type Eval (GGSerialize 'Sum _Serialize _Columns exprs rep :: Constraint -> Type) Source # 
Instance details

Defined in Rel8.Internal.Generic.Table

type Eval (GGSerialize 'Sum _Serialize _Columns exprs rep :: Constraint -> Type) = GSerializeADT _Serialize _Columns exprs rep

data GGColumns (a :: Algebra) (b :: Type -> Exp HTable) (c :: Type -> Type) (d :: HTable) Source #

Instances

Instances details
type Eval (GGColumns 'Product _Columns rep :: HTable -> Type) Source # 
Instance details

Defined in Rel8.Internal.Generic.Table

type Eval (GGColumns 'Product _Columns rep :: HTable -> Type) = GColumns _Columns rep
type Eval (GGColumns 'Sum _Columns rep :: HTable -> Type) Source # 
Instance details

Defined in Rel8.Internal.Generic.Table

type Eval (GGColumns 'Sum _Columns rep :: HTable -> Type) = GColumnsADT _Columns rep

ggfromResult :: forall (algebra :: Algebra) (_Serialize :: Type -> Type -> Exp Constraint) (_Columns :: Type -> Exp HTable) (exprs :: Type -> Type) rep x. (KnownAlgebra algebra, Eval (GGSerialize algebra _Serialize _Columns exprs rep)) => (forall expr a (proxy :: Type -> Type). Eval (_Serialize expr a) => proxy expr -> Eval (_Columns expr) Result -> a) -> Eval (GGColumns algebra _Columns exprs) Result -> rep x Source #

ggtoResult :: forall (algebra :: Algebra) (_Serialize :: Type -> Type -> Exp Constraint) (_Columns :: Type -> Exp HTable) (exprs :: Type -> Type) rep x. (KnownAlgebra algebra, Eval (GGSerialize algebra _Serialize _Columns exprs rep)) => (forall expr a (proxy :: Type -> Type). Eval (_Serialize expr a) => proxy expr -> a -> Eval (_Columns expr) Result) -> rep x -> Eval (GGColumns algebra _Columns exprs) Result Source #

type family GAlgebra (rep :: Type -> Type) :: Algebra where ... Source #

Equations

GAlgebra (M1 _1 _2 rep) = GAlgebra rep 
GAlgebra (V1 :: Type -> Type) = 'Sum 
GAlgebra (_1 :+: _2) = 'Sum 
GAlgebra (U1 :: Type -> Type) = 'Sum 
GAlgebra (_1 :*: _2) = 'Product 
GAlgebra (K1 _1 _2 :: Type -> Type) = 'Product