{-# language DataKinds #-}
{-# language StandaloneKindSignatures #-}
{-# language TypeFamilies #-}
module Rel8.Column
( Column
, TColumn
)
where
import Data.Kind ( Type )
import Prelude ()
import Rel8.FCF ( Eval, Exp )
import qualified Rel8.Schema.Kind as K
import Rel8.Schema.Result ( Result )
type Column :: K.Context -> Type -> Type
type family Column context a where
Column Result a = a
Column context a = context a
data TColumn :: K.Context -> Type -> Exp Type
type instance Eval (TColumn f a) = Column f a