{-# language DataKinds #-}
{-# language DeriveAnyClass #-}
{-# language DeriveGeneric #-}
{-# language DerivingVia #-}
{-# language DuplicateRecordFields #-}
{-# language FlexibleInstances #-}
{-# language MultiParamTypeClasses #-}
{-# language StandaloneDeriving #-}
{-# language TypeFamilies #-}
{-# language UndecidableInstances #-}

{-# options_ghc -O0 #-}

module Rel8.Generic.Rel8able.Test
  ( module Rel8.Generic.Rel8able.Test
  )
where

-- base
import GHC.Generics ( Generic )
import Prelude

-- rel8
import Rel8

-- text
import Data.Text ( Text )


data TableTest f = TableTest
  { TableTest f -> Column f Bool
foo :: Column f Bool
  , TableTest f -> Column f (Maybe Bool)
bar :: Column f (Maybe Bool)
  }
  deriving stock (forall x. TableTest f -> Rep (TableTest f) x)
-> (forall x. Rep (TableTest f) x -> TableTest f)
-> Generic (TableTest f)
forall x. Rep (TableTest f) x -> TableTest f
forall x. TableTest f -> Rep (TableTest f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (TableTest f) x -> TableTest f
forall (f :: Context) x. TableTest f -> Rep (TableTest f) x
$cto :: forall (f :: Context) x. Rep (TableTest f) x -> TableTest f
$cfrom :: forall (f :: Context) x. TableTest f -> Rep (TableTest f) x
Generic
  deriving anyclass HTable (GColumns TableTest)
HTable (GColumns TableTest)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns TableTest (Col (Reify context))
    -> TableTest (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableTest (Reify context)
    -> GColumns TableTest (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableTest context -> TableTest (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableTest (Reify context) -> TableTest context)
-> Rel8able TableTest
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableTest (Col (Reify context))
-> TableTest (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableTest context -> TableTest (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableTest (Reify context)
-> GColumns TableTest (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableTest (Reify context) -> TableTest context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: TableTest (Reify context) -> TableTest context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableTest (Reify context) -> TableTest context
greify :: TableTest context -> TableTest (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableTest context -> TableTest (Reify context)
gtoColumns :: TableTest (Reify context)
-> GColumns TableTest (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableTest (Reify context)
-> GColumns TableTest (Col (Reify context))
gfromColumns :: GColumns TableTest (Col (Reify context))
-> TableTest (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableTest (Col (Reify context))
-> TableTest (Reify context)
$cp1Rel8able :: HTable (GColumns TableTest)
Rel8able


data TablePair f = TablePair
  { TablePair f -> Column f Bool
foo :: Column f Bool
  , TablePair f -> (Column f Text, Column f Text)
bars :: (Column f Text, Column f Text)
  }
  deriving stock (forall x. TablePair f -> Rep (TablePair f) x)
-> (forall x. Rep (TablePair f) x -> TablePair f)
-> Generic (TablePair f)
forall x. Rep (TablePair f) x -> TablePair f
forall x. TablePair f -> Rep (TablePair f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (TablePair f) x -> TablePair f
forall (f :: Context) x. TablePair f -> Rep (TablePair f) x
$cto :: forall (f :: Context) x. Rep (TablePair f) x -> TablePair f
$cfrom :: forall (f :: Context) x. TablePair f -> Rep (TablePair f) x
Generic
  deriving anyclass HTable (GColumns TablePair)
HTable (GColumns TablePair)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns TablePair (Col (Reify context))
    -> TablePair (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TablePair (Reify context)
    -> GColumns TablePair (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TablePair context -> TablePair (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TablePair (Reify context) -> TablePair context)
-> Rel8able TablePair
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TablePair (Col (Reify context))
-> TablePair (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TablePair context -> TablePair (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TablePair (Reify context)
-> GColumns TablePair (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
TablePair (Reify context) -> TablePair context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: TablePair (Reify context) -> TablePair context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TablePair (Reify context) -> TablePair context
greify :: TablePair context -> TablePair (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TablePair context -> TablePair (Reify context)
gtoColumns :: TablePair (Reify context)
-> GColumns TablePair (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TablePair (Reify context)
-> GColumns TablePair (Col (Reify context))
gfromColumns :: GColumns TablePair (Col (Reify context))
-> TablePair (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TablePair (Col (Reify context))
-> TablePair (Reify context)
$cp1Rel8able :: HTable (GColumns TablePair)
Rel8able


data TableMaybe f = TableMaybe
  { TableMaybe f -> Column f [Maybe Bool]
foo :: Column f [Maybe Bool]
  , TableMaybe f -> HMaybe f (TablePair f, TablePair f)
bars :: HMaybe f (TablePair f, TablePair f)
  }
  deriving stock (forall x. TableMaybe f -> Rep (TableMaybe f) x)
-> (forall x. Rep (TableMaybe f) x -> TableMaybe f)
-> Generic (TableMaybe f)
forall x. Rep (TableMaybe f) x -> TableMaybe f
forall x. TableMaybe f -> Rep (TableMaybe f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (TableMaybe f) x -> TableMaybe f
forall (f :: Context) x. TableMaybe f -> Rep (TableMaybe f) x
$cto :: forall (f :: Context) x. Rep (TableMaybe f) x -> TableMaybe f
$cfrom :: forall (f :: Context) x. TableMaybe f -> Rep (TableMaybe f) x
Generic
  deriving anyclass HTable (GColumns TableMaybe)
HTable (GColumns TableMaybe)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns TableMaybe (Col (Reify context))
    -> TableMaybe (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableMaybe (Reify context)
    -> GColumns TableMaybe (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableMaybe context -> TableMaybe (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableMaybe (Reify context) -> TableMaybe context)
-> Rel8able TableMaybe
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableMaybe (Col (Reify context))
-> TableMaybe (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableMaybe context -> TableMaybe (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableMaybe (Reify context)
-> GColumns TableMaybe (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableMaybe (Reify context) -> TableMaybe context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: TableMaybe (Reify context) -> TableMaybe context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableMaybe (Reify context) -> TableMaybe context
greify :: TableMaybe context -> TableMaybe (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableMaybe context -> TableMaybe (Reify context)
gtoColumns :: TableMaybe (Reify context)
-> GColumns TableMaybe (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableMaybe (Reify context)
-> GColumns TableMaybe (Col (Reify context))
gfromColumns :: GColumns TableMaybe (Col (Reify context))
-> TableMaybe (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableMaybe (Col (Reify context))
-> TableMaybe (Reify context)
$cp1Rel8able :: HTable (GColumns TableMaybe)
Rel8able


data TableEither f = TableEither
  { TableEither f -> Column f Bool
foo :: Column f Bool
  , TableEither f
-> HEither f (HMaybe f (TablePair f, TablePair f)) (Column f Char)
bars :: HEither f (HMaybe f (TablePair f, TablePair f)) (Column f Char)
  }
  deriving stock (forall x. TableEither f -> Rep (TableEither f) x)
-> (forall x. Rep (TableEither f) x -> TableEither f)
-> Generic (TableEither f)
forall x. Rep (TableEither f) x -> TableEither f
forall x. TableEither f -> Rep (TableEither f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (TableEither f) x -> TableEither f
forall (f :: Context) x. TableEither f -> Rep (TableEither f) x
$cto :: forall (f :: Context) x. Rep (TableEither f) x -> TableEither f
$cfrom :: forall (f :: Context) x. TableEither f -> Rep (TableEither f) x
Generic
  deriving anyclass HTable (GColumns TableEither)
HTable (GColumns TableEither)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns TableEither (Col (Reify context))
    -> TableEither (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableEither (Reify context)
    -> GColumns TableEither (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableEither context -> TableEither (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableEither (Reify context) -> TableEither context)
-> Rel8able TableEither
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableEither (Col (Reify context))
-> TableEither (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableEither context -> TableEither (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableEither (Reify context)
-> GColumns TableEither (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableEither (Reify context) -> TableEither context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: TableEither (Reify context) -> TableEither context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableEither (Reify context) -> TableEither context
greify :: TableEither context -> TableEither (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableEither context -> TableEither (Reify context)
gtoColumns :: TableEither (Reify context)
-> GColumns TableEither (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableEither (Reify context)
-> GColumns TableEither (Col (Reify context))
gfromColumns :: GColumns TableEither (Col (Reify context))
-> TableEither (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableEither (Col (Reify context))
-> TableEither (Reify context)
$cp1Rel8able :: HTable (GColumns TableEither)
Rel8able


data TableThese f = TableThese
  { TableThese f -> Column f Bool
foo :: Column f Bool
  , TableThese f -> HThese f (TableMaybe f) (TableEither f)
bars :: HThese f (TableMaybe f) (TableEither f)
  }
  deriving stock (forall x. TableThese f -> Rep (TableThese f) x)
-> (forall x. Rep (TableThese f) x -> TableThese f)
-> Generic (TableThese f)
forall x. Rep (TableThese f) x -> TableThese f
forall x. TableThese f -> Rep (TableThese f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (TableThese f) x -> TableThese f
forall (f :: Context) x. TableThese f -> Rep (TableThese f) x
$cto :: forall (f :: Context) x. Rep (TableThese f) x -> TableThese f
$cfrom :: forall (f :: Context) x. TableThese f -> Rep (TableThese f) x
Generic
  deriving anyclass HTable (GColumns TableThese)
HTable (GColumns TableThese)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns TableThese (Col (Reify context))
    -> TableThese (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableThese (Reify context)
    -> GColumns TableThese (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableThese context -> TableThese (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableThese (Reify context) -> TableThese context)
-> Rel8able TableThese
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableThese (Col (Reify context))
-> TableThese (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableThese context -> TableThese (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableThese (Reify context)
-> GColumns TableThese (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableThese (Reify context) -> TableThese context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: TableThese (Reify context) -> TableThese context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableThese (Reify context) -> TableThese context
greify :: TableThese context -> TableThese (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableThese context -> TableThese (Reify context)
gtoColumns :: TableThese (Reify context)
-> GColumns TableThese (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableThese (Reify context)
-> GColumns TableThese (Col (Reify context))
gfromColumns :: GColumns TableThese (Col (Reify context))
-> TableThese (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableThese (Col (Reify context))
-> TableThese (Reify context)
$cp1Rel8able :: HTable (GColumns TableThese)
Rel8able


data TableList f = TableList
  { TableList f -> Column f Bool
foo :: Column f Bool
  , TableList f -> HList f (TableThese f)
bars :: HList f (TableThese f)
  }
  deriving stock (forall x. TableList f -> Rep (TableList f) x)
-> (forall x. Rep (TableList f) x -> TableList f)
-> Generic (TableList f)
forall x. Rep (TableList f) x -> TableList f
forall x. TableList f -> Rep (TableList f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (TableList f) x -> TableList f
forall (f :: Context) x. TableList f -> Rep (TableList f) x
$cto :: forall (f :: Context) x. Rep (TableList f) x -> TableList f
$cfrom :: forall (f :: Context) x. TableList f -> Rep (TableList f) x
Generic
  deriving anyclass HTable (GColumns TableList)
HTable (GColumns TableList)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns TableList (Col (Reify context))
    -> TableList (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableList (Reify context)
    -> GColumns TableList (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableList context -> TableList (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableList (Reify context) -> TableList context)
-> Rel8able TableList
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableList (Col (Reify context))
-> TableList (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableList context -> TableList (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableList (Reify context)
-> GColumns TableList (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableList (Reify context) -> TableList context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: TableList (Reify context) -> TableList context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableList (Reify context) -> TableList context
greify :: TableList context -> TableList (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableList context -> TableList (Reify context)
gtoColumns :: TableList (Reify context)
-> GColumns TableList (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableList (Reify context)
-> GColumns TableList (Col (Reify context))
gfromColumns :: GColumns TableList (Col (Reify context))
-> TableList (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableList (Col (Reify context))
-> TableList (Reify context)
$cp1Rel8able :: HTable (GColumns TableList)
Rel8able


data TableNonEmpty f = TableNonEmpty
  { TableNonEmpty f -> Column f Bool
foo :: Column f Bool
  , TableNonEmpty f -> HNonEmpty f (TableList f, TableMaybe f)
bars :: HNonEmpty f (TableList f, TableMaybe f)
  }
  deriving stock (forall x. TableNonEmpty f -> Rep (TableNonEmpty f) x)
-> (forall x. Rep (TableNonEmpty f) x -> TableNonEmpty f)
-> Generic (TableNonEmpty f)
forall x. Rep (TableNonEmpty f) x -> TableNonEmpty f
forall x. TableNonEmpty f -> Rep (TableNonEmpty f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (TableNonEmpty f) x -> TableNonEmpty f
forall (f :: Context) x. TableNonEmpty f -> Rep (TableNonEmpty f) x
$cto :: forall (f :: Context) x. Rep (TableNonEmpty f) x -> TableNonEmpty f
$cfrom :: forall (f :: Context) x. TableNonEmpty f -> Rep (TableNonEmpty f) x
Generic
  deriving anyclass HTable (GColumns TableNonEmpty)
HTable (GColumns TableNonEmpty)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns TableNonEmpty (Col (Reify context))
    -> TableNonEmpty (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableNonEmpty (Reify context)
    -> GColumns TableNonEmpty (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableNonEmpty context -> TableNonEmpty (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableNonEmpty (Reify context) -> TableNonEmpty context)
-> Rel8able TableNonEmpty
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableNonEmpty (Col (Reify context))
-> TableNonEmpty (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNonEmpty context -> TableNonEmpty (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNonEmpty (Reify context)
-> GColumns TableNonEmpty (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNonEmpty (Reify context) -> TableNonEmpty context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: TableNonEmpty (Reify context) -> TableNonEmpty context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNonEmpty (Reify context) -> TableNonEmpty context
greify :: TableNonEmpty context -> TableNonEmpty (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNonEmpty context -> TableNonEmpty (Reify context)
gtoColumns :: TableNonEmpty (Reify context)
-> GColumns TableNonEmpty (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNonEmpty (Reify context)
-> GColumns TableNonEmpty (Col (Reify context))
gfromColumns :: GColumns TableNonEmpty (Col (Reify context))
-> TableNonEmpty (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableNonEmpty (Col (Reify context))
-> TableNonEmpty (Reify context)
$cp1Rel8able :: HTable (GColumns TableNonEmpty)
Rel8able


data TableNest f = TableNest
  { TableNest f -> Column f Bool
foo :: Column f Bool
  , TableNest f -> HList f (HMaybe f (TablePair f))
bars :: HList f (HMaybe f (TablePair f))
  }
  deriving stock (forall x. TableNest f -> Rep (TableNest f) x)
-> (forall x. Rep (TableNest f) x -> TableNest f)
-> Generic (TableNest f)
forall x. Rep (TableNest f) x -> TableNest f
forall x. TableNest f -> Rep (TableNest f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (TableNest f) x -> TableNest f
forall (f :: Context) x. TableNest f -> Rep (TableNest f) x
$cto :: forall (f :: Context) x. Rep (TableNest f) x -> TableNest f
$cfrom :: forall (f :: Context) x. TableNest f -> Rep (TableNest f) x
Generic
  deriving anyclass HTable (GColumns TableNest)
HTable (GColumns TableNest)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns TableNest (Col (Reify context))
    -> TableNest (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableNest (Reify context)
    -> GColumns TableNest (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableNest context -> TableNest (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableNest (Reify context) -> TableNest context)
-> Rel8able TableNest
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableNest (Col (Reify context))
-> TableNest (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNest context -> TableNest (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNest (Reify context)
-> GColumns TableNest (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNest (Reify context) -> TableNest context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: TableNest (Reify context) -> TableNest context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNest (Reify context) -> TableNest context
greify :: TableNest context -> TableNest (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNest context -> TableNest (Reify context)
gtoColumns :: TableNest (Reify context)
-> GColumns TableNest (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableNest (Reify context)
-> GColumns TableNest (Col (Reify context))
gfromColumns :: GColumns TableNest (Col (Reify context))
-> TableNest (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableNest (Col (Reify context))
-> TableNest (Reify context)
$cp1Rel8able :: HTable (GColumns TableNest)
Rel8able


data S3Object = S3Object
  { S3Object -> Text
bucketName :: Text
  , S3Object -> Text
objectKey :: Text
  }
  deriving stock (forall x. S3Object -> Rep S3Object x)
-> (forall x. Rep S3Object x -> S3Object) -> Generic S3Object
forall x. Rep S3Object x -> S3Object
forall x. S3Object -> Rep S3Object x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep S3Object x -> S3Object
$cfrom :: forall x. S3Object -> Rep S3Object x
Generic


deriving via HKDT S3Object
  instance Table Result S3Object


deriving via HKDT S3Object
  instance x ~ HKD S3Object Expr => ToExprs x S3Object


data HKDSum = HKDSumA Text | HKDSumB Bool Char | HKDSumC
  deriving stock (forall x. HKDSum -> Rep HKDSum x)
-> (forall x. Rep HKDSum x -> HKDSum) -> Generic HKDSum
forall x. Rep HKDSum x -> HKDSum
forall x. HKDSum -> Rep HKDSum x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep HKDSum x -> HKDSum
$cfrom :: forall x. HKDSum -> Rep HKDSum x
Generic


deriving via HKDT HKDSum
  instance Table Result HKDSum


deriving via HKDT HKDSum
  instance x ~ HKD HKDSum Expr => ToExprs x HKDSum


data HKDTest f = HKDTest
  { HKDTest f -> Lift f S3Object
s3Object :: Lift f S3Object
  , HKDTest f -> Lift f HKDSum
hkdSum :: Lift f HKDSum
  } 
  deriving stock (forall x. HKDTest f -> Rep (HKDTest f) x)
-> (forall x. Rep (HKDTest f) x -> HKDTest f)
-> Generic (HKDTest f)
forall x. Rep (HKDTest f) x -> HKDTest f
forall x. HKDTest f -> Rep (HKDTest f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (HKDTest f) x -> HKDTest f
forall (f :: Context) x. HKDTest f -> Rep (HKDTest f) x
$cto :: forall (f :: Context) x. Rep (HKDTest f) x -> HKDTest f
$cfrom :: forall (f :: Context) x. HKDTest f -> Rep (HKDTest f) x
Generic
  deriving anyclass HTable (GColumns HKDTest)
HTable (GColumns HKDTest)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns HKDTest (Col (Reify context)) -> HKDTest (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    HKDTest (Reify context) -> GColumns HKDTest (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    HKDTest context -> HKDTest (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    HKDTest (Reify context) -> HKDTest context)
-> Rel8able HKDTest
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns HKDTest (Col (Reify context)) -> HKDTest (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
HKDTest context -> HKDTest (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
HKDTest (Reify context) -> GColumns HKDTest (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
HKDTest (Reify context) -> HKDTest context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: HKDTest (Reify context) -> HKDTest context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
HKDTest (Reify context) -> HKDTest context
greify :: HKDTest context -> HKDTest (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
HKDTest context -> HKDTest (Reify context)
gtoColumns :: HKDTest (Reify context) -> GColumns HKDTest (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
HKDTest (Reify context) -> GColumns HKDTest (Col (Reify context))
gfromColumns :: GColumns HKDTest (Col (Reify context)) -> HKDTest (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns HKDTest (Col (Reify context)) -> HKDTest (Reify context)
$cp1Rel8able :: HTable (GColumns HKDTest)
Rel8able


data NonRecord f = NonRecord
  (Column f Bool)
  (Column f Char)
  (Column f Char)
  (Column f Char)
  (Column f Char)
  (Column f Char)
  (Column f Char)
  (Column f Char)
  (Column f Char)
  (Column f Char)
  deriving stock (forall x. NonRecord f -> Rep (NonRecord f) x)
-> (forall x. Rep (NonRecord f) x -> NonRecord f)
-> Generic (NonRecord f)
forall x. Rep (NonRecord f) x -> NonRecord f
forall x. NonRecord f -> Rep (NonRecord f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (NonRecord f) x -> NonRecord f
forall (f :: Context) x. NonRecord f -> Rep (NonRecord f) x
$cto :: forall (f :: Context) x. Rep (NonRecord f) x -> NonRecord f
$cfrom :: forall (f :: Context) x. NonRecord f -> Rep (NonRecord f) x
Generic
  deriving anyclass HTable (GColumns NonRecord)
HTable (GColumns NonRecord)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns NonRecord (Col (Reify context))
    -> NonRecord (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    NonRecord (Reify context)
    -> GColumns NonRecord (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    NonRecord context -> NonRecord (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    NonRecord (Reify context) -> NonRecord context)
-> Rel8able NonRecord
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns NonRecord (Col (Reify context))
-> NonRecord (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
NonRecord context -> NonRecord (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
NonRecord (Reify context)
-> GColumns NonRecord (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
NonRecord (Reify context) -> NonRecord context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: NonRecord (Reify context) -> NonRecord context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
NonRecord (Reify context) -> NonRecord context
greify :: NonRecord context -> NonRecord (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
NonRecord context -> NonRecord (Reify context)
gtoColumns :: NonRecord (Reify context)
-> GColumns NonRecord (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
NonRecord (Reify context)
-> GColumns NonRecord (Col (Reify context))
gfromColumns :: GColumns NonRecord (Col (Reify context))
-> NonRecord (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns NonRecord (Col (Reify context))
-> NonRecord (Reify context)
$cp1Rel8able :: HTable (GColumns NonRecord)
Rel8able


data TableSum f
  = TableSumA (Column f Bool) (Column f Text)
  | TableSumB
  | TableSumC (Column f Text)
  deriving stock (forall x. TableSum f -> Rep (TableSum f) x)
-> (forall x. Rep (TableSum f) x -> TableSum f)
-> Generic (TableSum f)
forall x. Rep (TableSum f) x -> TableSum f
forall x. TableSum f -> Rep (TableSum f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (TableSum f) x -> TableSum f
forall (f :: Context) x. TableSum f -> Rep (TableSum f) x
$cto :: forall (f :: Context) x. Rep (TableSum f) x -> TableSum f
$cfrom :: forall (f :: Context) x. TableSum f -> Rep (TableSum f) x
Generic


data TableProduct f = TableProduct
  { TableProduct f -> HADT f TableSum
sum :: HADT f TableSum
  , TableProduct f -> TableList f
list :: TableList f
  , TableProduct f
-> HList f (HADT f TableSum, Lift f HKDSum, HKDTest f)
foos :: HList f (HADT f TableSum, Lift f HKDSum, HKDTest f)
  }
  deriving stock (forall x. TableProduct f -> Rep (TableProduct f) x)
-> (forall x. Rep (TableProduct f) x -> TableProduct f)
-> Generic (TableProduct f)
forall x. Rep (TableProduct f) x -> TableProduct f
forall x. TableProduct f -> Rep (TableProduct f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: Context) x. Rep (TableProduct f) x -> TableProduct f
forall (f :: Context) x. TableProduct f -> Rep (TableProduct f) x
$cto :: forall (f :: Context) x. Rep (TableProduct f) x -> TableProduct f
$cfrom :: forall (f :: Context) x. TableProduct f -> Rep (TableProduct f) x
Generic
  deriving anyclass HTable (GColumns TableProduct)
HTable (GColumns TableProduct)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns TableProduct (Col (Reify context))
    -> TableProduct (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableProduct (Reify context)
    -> GColumns TableProduct (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableProduct context -> TableProduct (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    TableProduct (Reify context) -> TableProduct context)
-> Rel8able TableProduct
forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableProduct (Col (Reify context))
-> TableProduct (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableProduct context -> TableProduct (Reify context)
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableProduct (Reify context)
-> GColumns TableProduct (Col (Reify context))
forall (context :: Context).
(Labelable context, Reifiable context) =>
TableProduct (Reify context) -> TableProduct context
forall (t :: Rel8able).
HTable (GColumns t)
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    GColumns t (Col (Reify context)) -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> GColumns t (Col (Reify context)))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t context -> t (Reify context))
-> (forall (context :: Context).
    (Labelable context, Reifiable context) =>
    t (Reify context) -> t context)
-> Rel8able t
gunreify :: TableProduct (Reify context) -> TableProduct context
$cgunreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableProduct (Reify context) -> TableProduct context
greify :: TableProduct context -> TableProduct (Reify context)
$cgreify :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableProduct context -> TableProduct (Reify context)
gtoColumns :: TableProduct (Reify context)
-> GColumns TableProduct (Col (Reify context))
$cgtoColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
TableProduct (Reify context)
-> GColumns TableProduct (Col (Reify context))
gfromColumns :: GColumns TableProduct (Col (Reify context))
-> TableProduct (Reify context)
$cgfromColumns :: forall (context :: Context).
(Labelable context, Reifiable context) =>
GColumns TableProduct (Col (Reify context))
-> TableProduct (Reify context)
$cp1Rel8able :: HTable (GColumns TableProduct)
Rel8able