{-# language DeriveFunctor #-}
{-# language DerivingStrategies #-}
{-# language DuplicateRecordFields #-}
{-# language NamedFieldPuns #-}
{-# language StandaloneKindSignatures #-}
{-# language StrictData #-}
module Rel8.Schema.Table
( TableSchema(..)
, ppTable
)
where
import Data.Kind ( Type )
import Prelude
import Text.PrettyPrint ( Doc )
import Rel8.Schema.QualifiedName (QualifiedName, ppQualifiedName)
type TableSchema :: Type -> Type
data TableSchema names = TableSchema
{ forall names. TableSchema names -> QualifiedName
name :: QualifiedName
, forall names. TableSchema names -> names
columns :: names
}
deriving stock (forall a b. (a -> b) -> TableSchema a -> TableSchema b)
-> (forall a b. a -> TableSchema b -> TableSchema a)
-> Functor TableSchema
forall a b. a -> TableSchema b -> TableSchema a
forall a b. (a -> b) -> TableSchema a -> TableSchema b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
$cfmap :: forall a b. (a -> b) -> TableSchema a -> TableSchema b
fmap :: forall a b. (a -> b) -> TableSchema a -> TableSchema b
$c<$ :: forall a b. a -> TableSchema b -> TableSchema a
<$ :: forall a b. a -> TableSchema b -> TableSchema a
Functor
ppTable :: TableSchema a -> Doc
ppTable :: forall a. TableSchema a -> Doc
ppTable TableSchema {QualifiedName
$sel:name:TableSchema :: forall names. TableSchema names -> QualifiedName
name :: QualifiedName
name} = QualifiedName -> Doc
ppQualifiedName QualifiedName
name