| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Rel8.Internal.Schema.HTable
Synopsis
- class HTable (t :: HTable) where
- type HField (t :: HTable) = (field :: Type -> Type) | field -> t
- type HConstrainTable (t :: HTable) (c :: Type -> Constraint)
- hfield :: HTable t => t context -> HField t a -> context a
- htabulate :: HTable t => (forall a. HField t a -> context a) -> t context
- hdicts :: forall (c :: Type -> Constraint). (HTable t, HConstrainTable t c) => t (Dict c)
- hspecs :: HTable t => t Spec
- hfoldMap :: (HTable t, Semigroup s) => (forall a. context a -> s) -> t context -> s
- hmap :: HTable t => (forall a. context a -> context' a) -> t context -> t context'
- htabulateA :: (HTable t, Apply m) => (forall a. HField t a -> m (context a)) -> m (t context)
- htabulateP :: (HTable t, ProductProfunctor p) => (forall a. HField t a -> p i (context a)) -> p i (t context)
- htraverse :: (HTable t, Apply m) => (forall a. f a -> m (g a)) -> t f -> m (t g)
- htraverse_ :: (HTable t, Apply f) => (forall a. context a -> f b) -> t context -> f ()
- htraverseP :: (HTable t, ProductProfunctor p) => (forall a. p (f a) (g a)) -> p (t f) (t g)
- htraversePWithField :: (HTable t, ProductProfunctor p) => (forall a. HField t a -> p (f a) (g a)) -> p (t f) (t g)
Documentation
class HTable (t :: HTable) Source #
A HTable is a functor-indexed/higher-kinded data type that is
representable (htabulate/hfield), constrainable (hdicts), and
specified (hspecs).
This is an internal concept for Rel8, and you should not need to define instances yourself or specify this constraint.
Associated Types
type HField (t :: HTable) = (field :: Type -> Type) | field -> t Source #
type HConstrainTable (t :: HTable) (c :: Type -> Constraint) Source #
type HConstrainTable (t :: HTable) (c :: Type -> Constraint) = HConstrainTable (GHColumns (Rep (t (Proxy :: Type -> Type)))) c
Instances
| Sql DBType a => HTable (HIdentity a) Source # | |||||
Defined in Rel8.Internal.Schema.HTable.Identity Associated Types
Methods hfield :: HIdentity a context -> HField (HIdentity a) a0 -> context a0 Source # htabulate :: (forall a0. HField (HIdentity a) a0 -> context a0) -> HIdentity a context Source # htraverse :: Apply m => (forall a0. f a0 -> m (g a0)) -> HIdentity a f -> m (HIdentity a g) Source # hdicts :: forall (c :: Type -> Constraint). HConstrainTable (HIdentity a) c => HIdentity a (Dict c) Source # | |||||
| HTable table => HTable (HMaybeTable table) Source # | |||||
Defined in Rel8.Internal.Schema.HTable.Maybe Associated Types
Methods hfield :: HMaybeTable table context -> HField (HMaybeTable table) a -> context a Source # htabulate :: (forall a. HField (HMaybeTable table) a -> context a) -> HMaybeTable table context Source # htraverse :: Apply m => (forall a. f a -> m (g a)) -> HMaybeTable table f -> m (HMaybeTable table g) Source # hdicts :: forall (c :: Type -> Constraint). HConstrainTable (HMaybeTable table) c => HMaybeTable table (Dict c) Source # hspecs :: HMaybeTable table Spec Source # | |||||
| HTable table => HTable (HNullify table) Source # | |||||
Defined in Rel8.Internal.Schema.HTable.Nullify Associated Types
Methods hfield :: HNullify table context -> HField (HNullify table) a -> context a Source # htabulate :: (forall a. HField (HNullify table) a -> context a) -> HNullify table context Source # htraverse :: Apply m => (forall a. f a -> m (g a)) -> HNullify table f -> m (HNullify table g) Source # hdicts :: forall (c :: Type -> Constraint). HConstrainTable (HNullify table) c => HNullify table (Dict c) Source # | |||||
| (HTable left, HTable right) => HTable (HEitherTable left right) Source # | |||||
Defined in Rel8.Internal.Schema.HTable.Either Associated Types
Methods hfield :: HEitherTable left right context -> HField (HEitherTable left right) a -> context a Source # htabulate :: (forall a. HField (HEitherTable left right) a -> context a) -> HEitherTable left right context Source # htraverse :: Apply m => (forall a. f a -> m (g a)) -> HEitherTable left right f -> m (HEitherTable left right g) Source # hdicts :: forall (c :: Type -> Constraint). HConstrainTable (HEitherTable left right) c => HEitherTable left right (Dict c) Source # hspecs :: HEitherTable left right Spec Source # | |||||
| (HTable table, KnownSymbol label) => HTable (HLabel label table) Source # | |||||
Defined in Rel8.Internal.Schema.HTable.Label Associated Types
Methods hfield :: HLabel label table context -> HField (HLabel label table) a -> context a Source # htabulate :: (forall a. HField (HLabel label table) a -> context a) -> HLabel label table context Source # htraverse :: Apply m => (forall a. f a -> m (g a)) -> HLabel label table f -> m (HLabel label table g) Source # hdicts :: forall (c :: Type -> Constraint). HConstrainTable (HLabel label table) c => HLabel label table (Dict c) Source # | |||||
| (HTable t, MapSpec f) => HTable (HMapTable f t) Source # | |||||
Defined in Rel8.Internal.Schema.HTable.MapTable Associated Types
Methods hfield :: HMapTable f t context -> HField (HMapTable f t) a -> context a Source # htabulate :: (forall a. HField (HMapTable f t) a -> context a) -> HMapTable f t context Source # htraverse :: Apply m => (forall a. f0 a -> m (g a)) -> HMapTable f t f0 -> m (HMapTable f t g) Source # hdicts :: forall (c :: Type -> Constraint). HConstrainTable (HMapTable f t) c => HMapTable f t (Dict c) Source # | |||||
| (HTable x, HTable y) => HTable (HProduct x y) Source # | |||||
Defined in Rel8.Internal.Schema.HTable Associated Types
Methods hfield :: HProduct x y context -> HField (HProduct x y) a -> context a Source # htabulate :: (forall a. HField (HProduct x y) a -> context a) -> HProduct x y context Source # htraverse :: Apply m => (forall a. f a -> m (g a)) -> HProduct x y f -> m (HProduct x y g) Source # hdicts :: forall (c :: Type -> Constraint). HConstrainTable (HProduct x y) c => HProduct x y (Dict c) Source # | |||||
| (HTable here, HTable there) => HTable (HTheseTable here there) Source # | |||||
Defined in Rel8.Internal.Schema.HTable.These Associated Types
Methods hfield :: HTheseTable here there context -> HField (HTheseTable here there) a -> context a Source # htabulate :: (forall a. HField (HTheseTable here there) a -> context a) -> HTheseTable here there context Source # htraverse :: Apply m => (forall a. f a -> m (g a)) -> HTheseTable here there f -> m (HTheseTable here there g) Source # hdicts :: forall (c :: Type -> Constraint). HConstrainTable (HTheseTable here there) c => HTheseTable here there (Dict c) Source # hspecs :: HTheseTable here there Spec Source # | |||||
| (HTable table, Vector list) => HTable (HVectorize list table) Source # | |||||
Defined in Rel8.Internal.Schema.HTable.Vectorize Associated Types
Methods hfield :: HVectorize list table context -> HField (HVectorize list table) a -> context a Source # htabulate :: (forall a. HField (HVectorize list table) a -> context a) -> HVectorize list table context Source # htraverse :: Apply m => (forall a. f a -> m (g a)) -> HVectorize list table f -> m (HVectorize list table g) Source # hdicts :: forall (c :: Type -> Constraint). HConstrainTable (HVectorize list table) c => HVectorize list table (Dict c) Source # hspecs :: HVectorize list table Spec Source # | |||||
hdicts :: forall (c :: Type -> Constraint). (HTable t, HConstrainTable t c) => t (Dict c) Source #
htabulateA :: (HTable t, Apply m) => (forall a. HField t a -> m (context a)) -> m (t context) Source #
htabulateP :: (HTable t, ProductProfunctor p) => (forall a. HField t a -> p i (context a)) -> p i (t context) Source #
htraverse_ :: (HTable t, Apply f) => (forall a. context a -> f b) -> t context -> f () Source #
htraverseP :: (HTable t, ProductProfunctor p) => (forall a. p (f a) (g a)) -> p (t f) (t g) Source #
htraversePWithField :: (HTable t, ProductProfunctor p) => (forall a. HField t a -> p (f a) (g a)) -> p (t f) (t g) Source #