{-# language DataKinds #-} {-# language FlexibleContexts #-} {-# language FlexibleInstances #-} {-# language MultiParamTypeClasses #-} {-# language TypeFamilies #-} {-# language StandaloneKindSignatures #-} {-# language UndecidableInstances #-} module Rel8.Type.Sum ( DBSum ) where -- base import Data.Int ( Int16, Int32, Int64 ) import Data.Kind ( Constraint, Type ) import Prelude -- rel8 import Rel8.Type ( DBType ) -- scientific import Data.Scientific ( Scientific ) -- time import Data.Time.LocalTime ( CalendarDiffTime ) -- | The class of database types that support the @sum()@ aggregation function. type DBSum :: Type -> Constraint class DBType a => DBSum a instance DBSum Int16 instance DBSum Int32 instance DBSum Int64 instance DBSum Float instance DBSum Double instance DBSum Scientific instance DBSum CalendarDiffTime