1{-# language DataKinds #-}
2{-# language StandaloneKindSignatures #-}
3{-# language TypeFamilies #-}
12import Data.Kind ( Type )
16import Rel8.Aggregate ( Aggregate )
17import Rel8.Expr ( Expr )
18import Rel8.FCF ( Eval, Exp )
19import qualified Rel8.Schema.Kind as K
20import Rel8.Schema.Name ( Name(..) )
21import Rel8.Schema.Result ( Result )
24-- | This type family is used to specify columns in 'Rel8able's. In @Column f
25-- a@, @f@ is the context of the column (which should be left polymorphic in
26-- 'Rel8able' definitions), and @a@ is the type of the column.
27type Column :: K.Context -> Type -> Type
28type family Column context a where
29 Column Aggregate a = Aggregate a
30 Column Expr a = Expr a
31 Column Name a = Name a
35data TColumn :: K.Context -> Type -> Exp Type
36type instance Eval (TColumn f a) = Column f a
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list