    {-# LANGUAGE CPP                #-}
    #if MIN_VERSION_base(4,17,0)
    {-# LANGUAGE ExplicitNamespaces #-}
    #endif

    module RIO.Prelude.Types
      (
        -- * @base@

        -- ** Types

        -- *** @Bool@

        -- | Re-exported from "Data.Bool":

        Data.Bool.Bool(..)
        -- *** @Char@ (@String@)

        -- | Re-exported from "Data.Char":

      , Data.Char.Char
        -- | Re-exported from "Data.String":

      , Data.String.String
        -- | Re-exported from "System.IO":

      , System.IO.FilePath
        -- *** @Ordering@

        -- | Re-exported from "Data.Ord":

      , Data.Ord.Ordering(..)
        -- *** Numbers

        -- **** @Int@

        -- | Re-exported from "Data.Int":

      , Data.Int.Int
        -- ***** @Int8@

      , Data.Int.Int8
        -- ***** @Int16@

      , Data.Int.Int16
        -- ***** @Int32@

      , Data.Int.Int32
        -- ***** @Int64@

      , Data.Int.Int64
        -- **** @Word@

        -- | Re-exported from "Data.Word":

      , Data.Word.Word
        -- ***** @Word8@

      , Data.Word.Word8
        -- ***** @Word16@

      , Data.Word.Word16
        -- ***** @Word32@

      , Data.Word.Word32
        -- ***** @Word64@

      , Data.Word.Word64
        -- **** @Integer@

        -- | Re-exported from "Prelude.Integer":

      , Prelude.Integer
        -- **** @Natural@

        -- | Re-exported from "Numeric.Natural":

      , Numeric.Natural.Natural
        -- **** @Rational@

        -- | Re-exported from "Data.Ratio":

      , Data.Ratio.Rational
        -- **** @Float@

        -- | Re-exported from "Prelude":

      , Prelude.Float
        -- **** @Double@

        -- | Re-exported from "Prelude":

      , Prelude.Double

        -- *** @Maybe@

        -- | Re-exported from "Data.Maybe":

      , Data.Maybe.Maybe(..)
        -- *** @Either@

        -- | Re-exported from "Data.Either":

      , Data.Either.Either(..)
        -- *** @NonEmpty@

        -- | Re-exported from Data.List.NonEmpty

      , Data.List.NonEmpty.NonEmpty(..)
        -- *** @Proxy@

        -- | Re-exported from "Data.Proxy":

      , Data.Proxy.Proxy(..)
        -- *** @Void@

        -- | Re-exported from "Data.Void":

      , Data.Void.Void
        -- *** @Const@

        -- | Re-exported from "Data.Functor.Const":

      , Data.Functor.Const.Const(..)
        -- *** @Identity@

        -- | Re-exported from "Data.Functor.Identity":

      , Data.Functor.Identity.Identity(..)
        -- *** @IO@

        -- | Re-exported from "System.IO":

      , System.IO.IO
        -- *** @ST@

        -- | Re-exported from "Control.Monad.ST":

      , Control.Monad.ST.ST

        -- ** Type Classes

        -- *** @Eq@

        -- | Re-exported from "Data.Eq":

      , Data.Eq.Eq

        -- *** @Ord@

        -- | Re-exported from "Data.Ord":

      , Data.Ord.Ord

        -- *** @Bounded@

        -- | Re-exported from "Prelude":

      , Prelude.Bounded

        -- *** @Enum@

        -- | Re-exported from "Prelude":

      , Prelude.Enum

        -- *** Strings

        -- **** @Show@

        -- | Re-exported from "Text.Show":

      , Text.Show.Show
        -- **** @Read@

        -- | Re-exported from "Text.Read":

      , Text.Read.Read
        -- **** @IsString@

        -- | Re-exported from "Data.String":

      , Data.String.IsString

        -- *** Numeric

        -- | All numeric classes are re-exported from "Prelude":

        -- **** @Num@

      , Prelude.Num
        -- **** @Fractional@

      , Prelude.Fractional
        -- **** @Floating@

      , Prelude.Floating
        -- **** @Real@

      , Prelude.Real
        -- **** @Integral@

      , Prelude.Integral
        -- **** @RealFrac@

      , Prelude.RealFrac
        -- **** @RealFloat@

      , Prelude.RealFloat

        -- *** Categories

        -- **** @Functor@

        -- | Re-exported from "Data.Functor":

      , Data.Functor.Functor
        -- **** @Bifunctor@

        -- | Re-exported from "Data.Bifunctor":

      , Data.Bifunctor.Bifunctor
        -- **** @Foldable@

        -- | Re-exported from "Data.Foldable":

      , Data.Foldable.Foldable
        -- **** @Bifoldable@

        -- | Re-exported from "Data.Bifoldable":

      , Data.Bifoldable.Bifoldable
        -- **** @Semigroup@

        -- | Re-exported from "Data.Semigroup":

      , Data.Semigroup.Semigroup
        -- **** @Monoid@

        -- | Re-exported from "Data.Monoid":

      , Data.Monoid.Monoid
        -- **** @Applicative@

        -- | Re-exported from "Control.Applicative":

      , Control.Applicative.Applicative
        -- **** @Alternative@

        -- | Re-exported from "Control.Applicative":

      , Control.Applicative.Alternative
        -- **** @Traversable@

        -- | Re-exported from "Data.Traversable":

      , Data.Traversable.Traversable
        -- **** @Bitraversable@

        -- | Re-exported from "Data.Bitraversable":

      , Data.Bitraversable.Bitraversable
        -- **** @Monad@

        -- | Re-exported from "Control.Monad":

      , Control.Monad.Monad
        -- **** @MonadPlus@

        -- | Re-exported from "Control.Monad":

      , Control.Monad.MonadPlus
        -- **** @Category@

        -- | Re-exported from "Control.Category":

      , Control.Category.Category
        -- **** @Arrow@

        -- | Re-exported from "Control.Arrow":

      , Control.Arrow.Arrow
        -- **** @MonadFail@

        -- | Re-exported from "Control.Monad.Fail":

      , Control.Monad.Fail.MonadFail

        -- *** Data

        -- **** @Typeable@

        -- | Re-exported from "Control.Monad":

      , Data.Typeable.Typeable
        -- **** @Data@

        -- | Re-exported from "Data.Data":

      , Data.Data.Data(..)
        -- **** @Generic@

        -- | Re-exported from "GHC.Generics":

      , GHC.Generics.Generic
        -- **** @Storable@

        -- | Re-exported from "Foreign.Storable":

      , Foreign.Storable.Storable

        -- *** Exceptions

        -- *** @Exception@

        -- | Re-exported from "Control.Exception.Base":

      , Control.Exception.Base.Exception
        -- **** @HasCallStack@

        -- | Re-exported from "GHC.Stack":

      , GHC.Stack.HasCallStack

    #if MIN_VERSION_base(4,17,0)
        -- *** The equality types

        -- | Re-exported from "Data.Type.Equality":

      , type (Data.Type.Equality.~)
    #endif

        -- * @deepseq@

        -- ** @NFData@

        -- | Re-exported from "Control.DeepSeq":

      , Control.DeepSeq.NFData

        -- * @mtl@

        -- ** @MonadTrans@

        -- | Re-exported from "Control.Monad.Reader":

      , Control.Monad.Reader.MonadTrans
        -- ** @MonadReader@

      , Control.Monad.Reader.MonadReader
        -- ** @ReaderT@ (@Reader@)

        -- | Re-exported from "Control.Monad.Reader":

      , Control.Monad.Reader.Reader
      , Control.Monad.Reader.ReaderT(ReaderT)

        -- * @exceptions@

        -- ** @MonadThrow@

        -- | Re-exported from "Control.Monad.Catch":

      , Control.Monad.Catch.MonadThrow

        -- * @bytestring@

        -- ** @ByteString@

        -- | Re-exported from "Data.ByteString":

      , Data.ByteString.ByteString
        -- ** @LByteString@

        -- | A synonym for lazy `Data.ByteString.Lazy.ByteString` re-exported from "Data.ByteString.Lazy":

      , RIO.Prelude.Renames.LByteString
        -- ** @Builder@

        -- | Re-exported from "Data.ByteString.Builder":

      , Data.ByteString.Builder.Builder
        -- ** @ShortByteString@

        -- | Re-exported from "Data.ByteString.Short":

      , Data.ByteString.Short.ShortByteString

        -- * @text@

        -- ** @Text@

        -- | Re-exported from "Data.Text":

      , Data.Text.Text
        -- ** @LText@

        -- | A synonym for lazy `Data.Text.Lazy.Text` re-exported from "Data.Text.Lazy":

      , RIO.Prelude.Renames.LText
        -- ** @UncodeException@

        -- | Re-exported from "Data.Text.Encoding.Error":

      , Data.Text.Encoding.Error.UnicodeException(..)

        -- * @vector@

        -- ** @Vector@

        -- | Boxed vector re-exported from "Data.Vector":

      , Data.Vector.Vector
        -- ** @UVector@

        -- | A synonym for unboxed `Data.Vector.Unboxed.Vector` re-exported from "Data.Vector.Unboxed":

      , RIO.Prelude.Renames.UVector
        -- *** @Unbox@

      , Data.Vector.Unboxed.Unbox
        -- ** @SVector@

        -- | A synonym for storable `Data.Vector.Storable.Vector` re-exported from "Data.Vector.Storable":

      , RIO.Prelude.Renames.SVector
        -- ** @GVector@

        -- | A synonym for generic `Data.Vector.Generic.Vector` re-exported from "Data.Vector.Generic":

      , RIO.Prelude.Renames.GVector

        -- * @containers@

        -- ** @IntMap@

        -- | Re-exported from "Data.IntMap.Strict":

      , Data.IntMap.Strict.IntMap
        -- ** @Map@

        -- | Re-exported from "Data.Map.Strict":

      , Data.Map.Strict.Map
        -- ** @IntSet@

        -- | Re-exported from "Data.IntSet":

      , Data.IntSet.IntSet
        -- ** @Set@

        -- | Re-exported from "Data.Set":

      , Data.Set.Set
        -- ** @Seq@

        -- | Re-exported from "Data.Seq":

      , Data.Sequence.Seq

        -- * @hashable@

        -- ** @Hashable@

      , Data.Hashable.Hashable

        -- * @unordered-containers@

        -- ** @HashMap@

        -- | Re-exported from "Data.HashMap.Strict":

      , Data.HashMap.Strict.HashMap
        -- ** @HashSet@

        -- | Re-exported from "Data.HashSet":

      , Data.HashSet.HashSet

        -- * @primitive@

        -- ** @PrimMonad@

        -- | Re-exported from "Control.Monad.Primitive":

      , Control.Monad.Primitive.PrimMonad (PrimState)
      ) where

    import qualified RIO.Prelude.Renames

    import qualified Control.Applicative
    import qualified Control.Arrow
    import qualified Control.Category
    import qualified Control.DeepSeq
    import qualified Control.Exception.Base
    import qualified Control.Monad
    import qualified Control.Monad.Catch
    import qualified Control.Monad.Fail
    import qualified Control.Monad.Primitive (PrimMonad(..))
    import qualified Control.Monad.Reader
    import qualified Control.Monad.ST
    import qualified Data.Bifoldable
    import qualified Data.Bifunctor
    import qualified Data.Bitraversable
    import qualified Data.Bool
    import qualified Data.ByteString (ByteString)
    import qualified Data.ByteString.Builder (Builder)
    import qualified Data.ByteString.Short
    import qualified Data.Char
    import qualified Data.Data
    import qualified Data.Either
    import qualified Data.Eq
    import qualified Data.Foldable
    import qualified Data.Function
    import qualified Data.Functor
    import qualified Data.Functor.Const
    import qualified Data.Functor.Identity
    import qualified Data.Hashable
    import qualified Data.HashMap.Strict
    import qualified Data.HashSet
    import qualified Data.Int
    import qualified Data.IntMap.Strict
    import qualified Data.IntSet
    import qualified Data.List
    import qualified Data.List.NonEmpty
    import qualified Data.Map.Strict
    import qualified Data.Maybe
    import qualified Data.Monoid (Monoid)
    import qualified Data.Ord
    import qualified Data.Proxy
    import qualified Data.Ratio
    import qualified Data.Semigroup (Semigroup)
    import qualified Data.Sequence
    import qualified Data.Set
    import qualified Data.String (IsString, String)
    import qualified Data.Text (Text)
    import qualified Data.Text.Encoding.Error
    import qualified Data.Traversable
    -- See https://errors.haskell.org/messages/GHC-12003/

    -- From GHC 9.4.1, the type equality operator ~ is a regular type operator.

    #if MIN_VERSION_base(4,17,0)
    import qualified Data.Type.Equality (type (~))
    #endif
    import qualified Data.Typeable
    import qualified Data.Vector
    import qualified Data.Vector.Unboxed (Unbox)
    import qualified Data.Void
    import qualified Data.Word
    import qualified Foreign.Storable
    import qualified GHC.Generics
    import qualified GHC.Stack
    import qualified Numeric.Natural
    import qualified Prelude
    import qualified System.Exit
    import qualified System.IO
    import qualified Text.Read
    import qualified Text.Show

    -- Bring instances for some of the unliftio types in scope, so they can be documented here.

    import           UnliftIO ()