on b018385 help sign in
rel8/src/Rel8/Type/String.hs
40 lines 920 B history raw
1{-# language FlexibleContexts #-}
2{-# language FlexibleInstances #-}
3{-# language MultiParamTypeClasses #-}
4{-# language StandaloneKindSignatures #-}
5{-# language UndecidableInstances #-}
7module Rel8.Type.String
8 ( DBString
9 )
10where
12-- base
13import Data.Kind ( Constraint, Type )
14import Prelude ()
16-- bytestring
17import Data.ByteString ( ByteString )
18import qualified Data.ByteString.Lazy as Lazy ( ByteString )
20-- case-insensitive
21import Data.CaseInsensitive ( CI )
23-- rel8
24import Rel8.Type ( DBType )
26-- text
27import Data.Text ( Text )
28import qualified Data.Text.Lazy as Lazy ( Text )
31-- | The class of data types that support the @string_agg()@ aggregation
32-- function.
33type DBString :: Type -> Constraint
34class DBType a => DBString a
35instance DBString Text
36instance DBString Lazy.Text
37instance DBString (CI Text)
38instance DBString (CI Lazy.Text)
39instance DBString ByteString
40instance DBString Lazy.ByteString