{-# language DataKinds #-}
{-# language DeriveAnyClass #-}
{-# language DeriveGeneric #-}
{-# language DerivingStrategies #-}
{-# language StandaloneKindSignatures #-}
module Rel8.Schema.HTable.These
( HTheseTable(..)
)
where
import GHC.Generics ( Generic )
import Prelude
import Rel8.Schema.HTable ( HTable )
import Rel8.Schema.HTable.Identity ( HIdentity )
import Rel8.Schema.HTable.Label ( HLabel )
import Rel8.Schema.HTable.Nullify ( HNullify )
import qualified Rel8.Schema.Kind as K
import Rel8.Type.Tag ( MaybeTag )
type HTheseTable :: K.HTable -> K.HTable -> K.HTable
data HTheseTable here there context = HTheseTable
{ forall (here :: HTable) (there :: HTable) (context :: Context).
HTheseTable here there context
-> HLabel "hereTag" (HIdentity (Maybe MaybeTag)) context
hhereTag :: HLabel "hereTag" (HIdentity (Maybe MaybeTag)) context
, forall (here :: HTable) (there :: HTable) (context :: Context).
HTheseTable here there context
-> HLabel "Here" (HNullify here) context
hhere :: HLabel "Here" (HNullify here) context
, forall (here :: HTable) (there :: HTable) (context :: Context).
HTheseTable here there context
-> HLabel "thereTag" (HIdentity (Maybe MaybeTag)) context
hthereTag :: HLabel "thereTag" (HIdentity (Maybe MaybeTag)) context
, forall (here :: HTable) (there :: HTable) (context :: Context).
HTheseTable here there context
-> HLabel "There" (HNullify there) context
hthere :: HLabel "There" (HNullify there) context
}
deriving stock (forall x.
HTheseTable here there context
-> Rep (HTheseTable here there context) x)
-> (forall x.
Rep (HTheseTable here there context) x
-> HTheseTable here there context)
-> Generic (HTheseTable here there context)
forall x.
Rep (HTheseTable here there context) x
-> HTheseTable here there context
forall x.
HTheseTable here there context
-> Rep (HTheseTable here there context) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (here :: HTable) (there :: HTable) (context :: Context) x.
Rep (HTheseTable here there context) x
-> HTheseTable here there context
forall (here :: HTable) (there :: HTable) (context :: Context) x.
HTheseTable here there context
-> Rep (HTheseTable here there context) x
$cfrom :: forall (here :: HTable) (there :: HTable) (context :: Context) x.
HTheseTable here there context
-> Rep (HTheseTable here there context) x
from :: forall x.
HTheseTable here there context
-> Rep (HTheseTable here there context) x
$cto :: forall (here :: HTable) (there :: HTable) (context :: Context) x.
Rep (HTheseTable here there context) x
-> HTheseTable here there context
to :: forall x.
Rep (HTheseTable here there context) x
-> HTheseTable here there context
Generic
deriving anyclass HTheseTable here there Spec
(forall (context :: Context) a.
HTheseTable here there context
-> HField (HTheseTable here there) a -> context a)
-> (forall (context :: Context).
(forall a. HField (HTheseTable here there) a -> context a)
-> HTheseTable here there context)
-> (forall (m :: Context) (f :: Context) (g :: Context).
Apply m =>
(forall a. f a -> m (g a))
-> HTheseTable here there f -> m (HTheseTable here there g))
-> (forall (c :: * -> Constraint).
HConstrainTable (HTheseTable here there) c =>
HTheseTable here there (Dict c))
-> HTheseTable here there Spec
-> HTable (HTheseTable here there)
forall (context :: Context).
(forall a. HField (HTheseTable here there) a -> context a)
-> HTheseTable here there context
forall (context :: Context) a.
HTheseTable here there context
-> HField (HTheseTable here there) a -> context a
forall (m :: Context) (f :: Context) (g :: Context).
Apply m =>
(forall a. f a -> m (g a))
-> HTheseTable here there f -> m (HTheseTable here there g)
forall (c :: * -> Constraint).
HConstrainTable (HTheseTable here there) c =>
HTheseTable here there (Dict c)
forall (t :: HTable).
(forall (context :: Context) a.
t context -> HField t a -> context a)
-> (forall (context :: Context).
(forall a. HField t a -> context a) -> t context)
-> (forall (m :: Context) (f :: Context) (g :: Context).
Apply m =>
(forall a. f a -> m (g a)) -> t f -> m (t g))
-> (forall (c :: * -> Constraint).
HConstrainTable t c =>
t (Dict c))
-> t Spec
-> HTable t
forall (here :: HTable) (there :: HTable).
(HTable here, HTable there) =>
HTheseTable here there Spec
forall (here :: HTable) (there :: HTable) (context :: Context).
(HTable here, HTable there) =>
(forall a. HField (HTheseTable here there) a -> context a)
-> HTheseTable here there context
forall (here :: HTable) (there :: HTable) (context :: Context) a.
(HTable here, HTable there) =>
HTheseTable here there context
-> HField (HTheseTable here there) a -> context a
forall (here :: HTable) (there :: HTable) (m :: Context)
(f :: Context) (g :: Context).
(HTable here, HTable there, Apply m) =>
(forall a. f a -> m (g a))
-> HTheseTable here there f -> m (HTheseTable here there g)
forall (here :: HTable) (there :: HTable) (c :: * -> Constraint).
(HTable here, HTable there,
HConstrainTable (HTheseTable here there) c) =>
HTheseTable here there (Dict c)
$chfield :: forall (here :: HTable) (there :: HTable) (context :: Context) a.
(HTable here, HTable there) =>
HTheseTable here there context
-> HField (HTheseTable here there) a -> context a
hfield :: forall (context :: Context) a.
HTheseTable here there context
-> HField (HTheseTable here there) a -> context a
$chtabulate :: forall (here :: HTable) (there :: HTable) (context :: Context).
(HTable here, HTable there) =>
(forall a. HField (HTheseTable here there) a -> context a)
-> HTheseTable here there context
htabulate :: forall (context :: Context).
(forall a. HField (HTheseTable here there) a -> context a)
-> HTheseTable here there context
$chtraverse :: forall (here :: HTable) (there :: HTable) (m :: Context)
(f :: Context) (g :: Context).
(HTable here, HTable there, Apply m) =>
(forall a. f a -> m (g a))
-> HTheseTable here there f -> m (HTheseTable here there g)
htraverse :: forall (m :: Context) (f :: Context) (g :: Context).
Apply m =>
(forall a. f a -> m (g a))
-> HTheseTable here there f -> m (HTheseTable here there g)
$chdicts :: forall (here :: HTable) (there :: HTable) (c :: * -> Constraint).
(HTable here, HTable there,
HConstrainTable (HTheseTable here there) c) =>
HTheseTable here there (Dict c)
hdicts :: forall (c :: * -> Constraint).
HConstrainTable (HTheseTable here there) c =>
HTheseTable here there (Dict c)
$chspecs :: forall (here :: HTable) (there :: HTable).
(HTable here, HTable there) =>
HTheseTable here there Spec
hspecs :: HTheseTable here there Spec
HTable