mirror of
https://github.com/nikita-volkov/hasql.git
synced 2024-12-28 21:14:55 +03:00
175 lines
5.9 KiB
Haskell
175 lines
5.9 KiB
Haskell
module Hasql.Private.Prelude
|
|
(
|
|
module Exports,
|
|
LazyByteString,
|
|
ByteStringBuilder,
|
|
LazyText,
|
|
TextBuilder,
|
|
forMToZero_,
|
|
forMFromZero_,
|
|
strictCons,
|
|
mapLeft,
|
|
)
|
|
where
|
|
|
|
|
|
-- base
|
|
-------------------------
|
|
import Control.Applicative as Exports hiding (WrappedArrow(..))
|
|
import Control.Arrow as Exports hiding (first, second)
|
|
import Control.Category as Exports
|
|
import Control.Concurrent as Exports
|
|
import Control.Exception as Exports
|
|
import Control.Monad as Exports hiding (fail, mapM_, sequence_, forM_, msum, mapM, sequence, forM)
|
|
import Control.Monad.IO.Class as Exports
|
|
import Control.Monad.Fail as Exports
|
|
import Control.Monad.Fix as Exports hiding (fix)
|
|
import Control.Monad.ST as Exports
|
|
import Data.Bifunctor as Exports
|
|
import Data.Bits as Exports
|
|
import Data.Bool as Exports
|
|
import Data.Char as Exports
|
|
import Data.Coerce as Exports
|
|
import Data.Complex as Exports
|
|
import Data.Data as Exports
|
|
import Data.Dynamic as Exports
|
|
import Data.Either as Exports
|
|
import Data.Fixed as Exports
|
|
import Data.Foldable as Exports hiding (toList)
|
|
import Data.Function as Exports hiding (id, (.))
|
|
import Data.Functor as Exports
|
|
import Data.Functor.Compose as Exports
|
|
import Data.Functor.Contravariant as Exports
|
|
import Data.Int as Exports
|
|
import Data.IORef as Exports
|
|
import Data.Ix as Exports
|
|
import Data.List as Exports hiding (sortOn, isSubsequenceOf, uncons, concat, foldr, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, find, maximumBy, minimumBy, mapAccumL, mapAccumR, foldl')
|
|
import Data.List.NonEmpty as Exports (NonEmpty(..))
|
|
import Data.Maybe as Exports
|
|
import Data.Monoid as Exports hiding (Alt, (<>))
|
|
import Data.Ord as Exports
|
|
import Data.Proxy as Exports
|
|
import Data.Ratio as Exports
|
|
import Data.Semigroup as Exports hiding (First(..), Last(..))
|
|
import Data.STRef as Exports
|
|
import Data.String as Exports
|
|
import Data.Traversable as Exports
|
|
import Data.Tuple as Exports
|
|
import Data.Unique as Exports
|
|
import Data.Version as Exports
|
|
import Data.Void as Exports
|
|
import Data.Word as Exports
|
|
import Debug.Trace as Exports
|
|
import Foreign.ForeignPtr as Exports
|
|
import Foreign.Ptr as Exports
|
|
import Foreign.StablePtr as Exports
|
|
import Foreign.Storable as Exports
|
|
import GHC.Conc as Exports hiding (orElse, withMVar, threadWaitWriteSTM, threadWaitWrite, threadWaitReadSTM, threadWaitRead)
|
|
import GHC.Exts as Exports (IsList(..), lazy, inline, sortWith, groupWith)
|
|
import GHC.Generics as Exports (Generic)
|
|
import GHC.IO.Exception as Exports
|
|
import GHC.OverloadedLabels as Exports
|
|
import Numeric as Exports
|
|
import Prelude as Exports hiding (Read, fail, concat, foldr, mapM_, sequence_, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, mapM, sequence, id, (.))
|
|
import System.Environment as Exports
|
|
import System.Exit as Exports
|
|
import System.IO as Exports (Handle, hClose)
|
|
import System.IO.Error as Exports
|
|
import System.IO.Unsafe as Exports
|
|
import System.Mem as Exports
|
|
import System.Mem.StableName as Exports
|
|
import System.Timeout as Exports
|
|
import Text.ParserCombinators.ReadP as Exports (ReadP, readP_to_S, readS_to_P)
|
|
import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readPrec_to_P, readP_to_Prec, readPrec_to_S, readS_to_Prec)
|
|
import Text.Printf as Exports (printf, hPrintf)
|
|
import Unsafe.Coerce as Exports
|
|
|
|
-- transformers
|
|
-------------------------
|
|
import Control.Monad.IO.Class as Exports
|
|
import Control.Monad.Trans.Class as Exports
|
|
import Control.Monad.Trans.Cont as Exports hiding (shift, callCC)
|
|
import Control.Monad.Trans.Except as Exports (ExceptT(ExceptT), Except, except, runExcept, runExceptT, mapExcept, mapExceptT, withExcept, withExceptT, throwE, catchE)
|
|
import Control.Monad.Trans.Maybe as Exports
|
|
import Control.Monad.Trans.Reader as Exports (Reader, ask, runReader, mapReader, withReader, ReaderT(ReaderT), runReaderT, mapReaderT, withReaderT)
|
|
import Control.Monad.Trans.State.Strict as Exports (State, runState, evalState, execState, mapState, withState, StateT(StateT), runStateT, evalStateT, execStateT, mapStateT, withStateT)
|
|
import Control.Monad.Trans.Writer.Strict as Exports (Writer, runWriter, execWriter, mapWriter, WriterT(..), execWriterT, mapWriterT)
|
|
import Data.Functor.Compose as Exports
|
|
import Data.Functor.Identity as Exports
|
|
|
|
-- mtl
|
|
-------------------------
|
|
import Control.Monad.Error.Class as Exports (MonadError (..))
|
|
|
|
-- profunctors
|
|
-------------------------
|
|
import Data.Profunctor.Unsafe as Exports
|
|
|
|
-- contravariant
|
|
-------------------------
|
|
import Data.Functor.Contravariant.Divisible as Exports
|
|
|
|
-- hashable
|
|
-------------------------
|
|
import Data.Hashable as Exports (Hashable(..))
|
|
|
|
-- text
|
|
-------------------------
|
|
import Data.Text as Exports (Text)
|
|
|
|
-- bytestring
|
|
-------------------------
|
|
import Data.ByteString as Exports (ByteString)
|
|
|
|
-- vector
|
|
-------------------------
|
|
import Data.Vector as Exports (Vector)
|
|
|
|
-- dlist
|
|
-------------------------
|
|
import Data.DList as Exports (DList)
|
|
|
|
-- postgresql-binary
|
|
-------------------------
|
|
import PostgreSQL.Binary.Data as Exports (UUID)
|
|
|
|
-- custom
|
|
-------------------------
|
|
import qualified Data.Text.Lazy
|
|
import qualified Data.Text.Lazy.Builder
|
|
import qualified Data.ByteString.Lazy
|
|
import qualified Data.ByteString.Builder
|
|
|
|
|
|
type LazyByteString =
|
|
Data.ByteString.Lazy.ByteString
|
|
|
|
type ByteStringBuilder =
|
|
Data.ByteString.Builder.Builder
|
|
|
|
type LazyText =
|
|
Data.Text.Lazy.Text
|
|
|
|
type TextBuilder =
|
|
Data.Text.Lazy.Builder.Builder
|
|
|
|
{-# INLINE forMToZero_ #-}
|
|
forMToZero_ :: Applicative m => Int -> (Int -> m a) -> m ()
|
|
forMToZero_ !startN f =
|
|
($ pred startN) $ fix $ \loop !n -> if n >= 0 then f n *> loop (pred n) else pure ()
|
|
|
|
{-# INLINE forMFromZero_ #-}
|
|
forMFromZero_ :: Applicative m => Int -> (Int -> m a) -> m ()
|
|
forMFromZero_ !endN f =
|
|
($ 0) $ fix $ \loop !n -> if n < endN then f n *> loop (succ n) else pure ()
|
|
|
|
{-# INLINE strictCons #-}
|
|
strictCons :: a -> [a] -> [a]
|
|
strictCons !a b =
|
|
let !c = a : b in c
|
|
|
|
{-# INLINE mapLeft #-}
|
|
mapLeft :: (a -> c) -> Either a b -> Either c b
|
|
mapLeft f =
|
|
either (Left . f) Right
|