1{-# language FlexibleContexts #-}
2{-# language FlexibleInstances #-}
3{-# language MultiParamTypeClasses #-}
4{-# language StandaloneKindSignatures #-}
5{-# language UndecidableInstances #-}
14import Data.Int ( Int16, Int32, Int64 )
15import Data.Kind ( Constraint, Type )
16import Data.List.NonEmpty ( NonEmpty )
20import Data.ByteString ( ByteString )
21import qualified Data.ByteString.Lazy as Lazy ( ByteString )
24import Data.CaseInsensitive ( CI )
27import Rel8.Opaque ( Opaque )
28import Rel8.Schema.Nullability ( Unnullify, Sql, HasNullability )
29import Rel8.Type.Eq ( DBEq )
32import Data.Scientific ( Scientific )
35import Data.Text ( Text )
36import qualified Data.Text.Lazy as Lazy ( Text )
39import Data.Time.Calendar ( Day )
40import Data.Time.Clock ( UTCTime )
41import Data.Time.LocalTime ( CalendarDiffTime, LocalTime, TimeOfDay )
44import Data.UUID ( UUID )
47-- | The class of database types that support the @<@, @<=@, @>@ and @>=@
49type DBOrd :: Type -> Constraint
50class DBEq a => DBOrd a
58instance DBOrd Scientific
61instance DBOrd LocalTime
62instance DBOrd TimeOfDay
63instance DBOrd CalendarDiffTime
65instance DBOrd Lazy.Text
66instance DBOrd (CI Text)
67instance DBOrd (CI Lazy.Text)
68instance DBOrd ByteString
69instance DBOrd Lazy.ByteString
71instance Sql DBOrd a => DBOrd [a]
72instance Sql DBOrd a => DBOrd (NonEmpty a)
73instance {-# OVERLAPPING #-} DBOrd Opaque
76instance {-# INCOHERENT #-} (HasNullability a, DBOrd (Unnullify a)) =>
80-- | The class of database types that support the @max@ aggregation function.
81type DBMax :: Type -> Constraint
82class DBOrd a => DBMax a
90instance DBMax Scientific
93instance DBMax LocalTime
94instance DBMax TimeOfDay
95instance DBMax CalendarDiffTime
97instance DBMax Lazy.Text
98instance DBMax (CI Text)
99instance DBMax (CI Lazy.Text)
100instance DBMax ByteString
101instance DBMax Lazy.ByteString
102instance Sql DBMax a => DBMax [a]
103instance Sql DBMax a => DBMax (NonEmpty a)
106instance {-# INCOHERENT #-} (HasNullability a, DBMax (Unnullify a)) =>
110-- | The class of database types that support the @min@ aggregation function.
111type DBMin :: Type -> Constraint
112class DBOrd a => DBMin a
120instance DBMin Scientific
121instance DBMin UTCTime
123instance DBMin LocalTime
124instance DBMin TimeOfDay
125instance DBMin CalendarDiffTime
127instance DBMin Lazy.Text
128instance DBMin (CI Text)
129instance DBMin (CI Lazy.Text)
130instance DBMin ByteString
131instance DBMin Lazy.ByteString
132instance Sql DBMin a => DBMin [a]
133instance Sql DBMin a => DBMin (NonEmpty a)
136instance {-# INCOHERENT #-} (HasNullability a, DBMin (Unnullify 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