1{-# language DataKinds #-}
2{-# language FlexibleContexts #-}
4{-# language StandaloneKindSignatures #-}
5{-# language UndecidableInstances #-}
9 , SSpec( SSpec, labels, necessity, info, nullability )
10 , KnownSpec( specSing )
17import Data.Kind ( Constraint, Type )
21import Rel8.Kind.Labels ( Labels, SLabels, KnownLabels, labelsSing )
22import Rel8.Kind.Necessity
25 , KnownNecessity, necessitySing
27import Rel8.Schema.Nullability ( Nullability, Sql, Unnullify, nullabilization )
28import Rel8.Type ( DBType, typeInformation )
29import Rel8.Type.Information ( TypeInformation )
33data Spec = Spec Labels Necessity Type
36type SSpec :: Spec -> Type
39 { labels :: SLabels labels
40 , necessity :: SNecessity necessity
41 , info :: TypeInformation (Unnullify a)
42 , nullability :: Nullability a
44 -> SSpec ('Spec labels necessity a)
47type KnownSpec :: Spec -> Constraint
48class KnownSpec spec where
49 specSing :: SSpec spec
54 , KnownNecessity necessity
57 => KnownSpec ('Spec labels necessity a)
61 , necessity = necessitySing
62 , info = typeInformation
63 , nullability = nullabilization
68type KContext = Spec -> Type
72type HKTable = KContext -> Type
76type KTable = (Type -> Type) -> Type
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