{-# LANGUAGE CPP #-}

-- Prelude additions for @aeson@, reducing the amount of imports per module.
module Data.Aeson.Internal.Prelude (
    module X,
) where

import Control.Applicative as X (Alternative (..), Const(..), liftA2)
import Control.Monad as X (void, when, unless, liftM2)
import Control.Monad.Fix as X (MonadFix (..))
import Data.Coerce as X (Coercible, coerce)
import Data.Data as X (Data)
import Data.Foldable as X (foldl')
import Data.Function as X (fix)
import Data.Functor as X (($>))
import Data.Int as X (Int8, Int16, Int32, Int64)
import Data.Maybe as X (fromMaybe, catMaybes, mapMaybe)
import Data.Proxy as X (Proxy(..))
import Data.Scientific as X (Scientific)
import Data.Semigroup as X (Semigroup (..))
import Data.String as X (IsString(..))
import Data.Text as X (Text)
import Data.Time as X (UTCTime)
import Data.Typeable as X (Typeable)
import Data.Vector as X (Vector)
import Data.Void as X (Void, absurd)
import Data.Word as X (Word8, Word16, Word32, Word64)
import GHC.Generics as X (Generic)
import Numeric.Natural as X (Natural)

#if !MIN_VERSION_base(4,17,0)
import GHC.Generics.Generically as X (Generically (..), Generically1 (..))
#endif