on f3daaff help sign in
rel8/src/Rel8/Type/Num.hs
45 lines 1.0 kB history raw
1{-# language DataKinds #-}
2{-# language StandaloneKindSignatures #-}
3{-# language TypeFamilies #-}
5module Rel8.Type.Num
6 ( DBNum, DBIntegral, DBFractional
7 )
8where
10-- base
11import Data.Int ( Int16, Int32, Int64 )
12import Data.Kind ( Constraint, Type )
13import Prelude
15-- rel8
16import Rel8.Type ( DBType )
18-- scientific
19import Data.Scientific ( Scientific )
22-- | The class of database types that support the @+@, @*@, @-@ operators, and
23-- the @abs@, @negate@, @sign@ functions.
24type DBNum :: Type -> Constraint
25class DBType a => DBNum a
26instance DBNum Int16
27instance DBNum Int32
28instance DBNum Int64
29instance DBNum Float
30instance DBNum Double
31instance DBNum Scientific
34type DBIntegral :: Type -> Constraint
35class DBNum a => DBIntegral a
36instance DBIntegral Int16
37instance DBIntegral Int32
38instance DBIntegral Int64
41-- | The class of database types that support the @/@ operator.
42class DBNum a => DBFractional a
43instance DBFractional Float
44instance DBFractional Double
45instance DBFractional Scientific