on 669b262 help sign in
rel8/src/Rel8/Type/Ord.hs
123 lines 3.0 kB history raw
1{-# language FlexibleContexts #-}
2{-# language FlexibleInstances #-}
3{-# language StandaloneKindSignatures #-}
4{-# language UndecidableInstances #-}
6module Rel8.Type.Ord
7 ( DBOrd
8 , DBMax, DBMin
9 )
10where
12-- base
13import Data.Int ( Int16, Int32, Int64 )
14import Data.Kind ( Constraint, Type )
15import Data.List.NonEmpty ( NonEmpty )
16import Prelude
18-- bytestring
19import Data.ByteString ( ByteString )
20import qualified Data.ByteString.Lazy as Lazy ( ByteString )
22-- case-insensitive
23import Data.CaseInsensitive ( CI )
25-- rel8
26import Rel8.Opaque ( Opaque )
27import Rel8.Schema.Nullability ( Nullabilizes )
28import Rel8.Type.Eq ( DBEq )
30-- scientific
31import Data.Scientific ( Scientific )
33-- text
34import Data.Text ( Text )
35import qualified Data.Text.Lazy as Lazy ( Text )
37-- time
38import Data.Time.Calendar ( Day )
39import Data.Time.Clock ( DiffTime, NominalDiffTime, UTCTime )
40import Data.Time.LocalTime ( TimeOfDay, LocalTime )
42-- uuid
43import Data.UUID ( UUID )
46type DBOrd :: Type -> Constraint
47class DBEq a => DBOrd a
48instance DBOrd Bool
49instance DBOrd Char
50instance DBOrd Int16
51instance DBOrd Int32
52instance DBOrd Int64
53instance DBOrd Float
54instance DBOrd Double
55instance DBOrd Scientific
56instance DBOrd UTCTime
57instance DBOrd Day
58instance DBOrd LocalTime
59instance DBOrd TimeOfDay
60instance DBOrd DiffTime
61instance DBOrd NominalDiffTime
62instance DBOrd Text
63instance DBOrd Lazy.Text
64instance DBOrd (CI Text)
65instance DBOrd (CI Lazy.Text)
66instance DBOrd ByteString
67instance DBOrd Lazy.ByteString
68instance DBOrd UUID
69instance (DBOrd db, Nullabilizes db a) => DBOrd [a]
70instance (DBOrd db, Nullabilizes db a) => DBOrd (NonEmpty a)
71instance {-# OVERLAPPING #-} DBOrd Opaque
74type DBMax :: Type -> Constraint
75class DBOrd a => DBMax a
76instance DBMax Bool
77instance DBMax Char
78instance DBMax Int16
79instance DBMax Int32
80instance DBMax Int64
81instance DBMax Float
82instance DBMax Double
83instance DBMax Scientific
84instance DBMax UTCTime
85instance DBMax Day
86instance DBMax LocalTime
87instance DBMax TimeOfDay
88instance DBMax DiffTime
89instance DBMax NominalDiffTime
90instance DBMax Text
91instance DBMax Lazy.Text
92instance DBMax (CI Text)
93instance DBMax (CI Lazy.Text)
94instance DBMax ByteString
95instance DBMax Lazy.ByteString
96instance (DBMax db, Nullabilizes db a) => DBMax [a]
97instance (DBMax db, Nullabilizes db a) => DBMax (NonEmpty a)
100type DBMin :: Type -> Constraint
101class DBOrd a => DBMin a
102instance DBMin Bool
103instance DBMin Char
104instance DBMin Int16
105instance DBMin Int32
106instance DBMin Int64
107instance DBMin Float
108instance DBMin Double
109instance DBMin Scientific
110instance DBMin UTCTime
111instance DBMin Day
112instance DBMin LocalTime
113instance DBMin TimeOfDay
114instance DBMin DiffTime
115instance DBMin NominalDiffTime
116instance DBMin Text
117instance DBMin Lazy.Text
118instance DBMin (CI Text)
119instance DBMin (CI Lazy.Text)
120instance DBMin ByteString
121instance DBMin Lazy.ByteString
122instance (DBMin db, Nullabilizes db a) => DBMin [a]
123instance (DBMin db, Nullabilizes db a) => DBMin (NonEmpty a)