cabal-version:       2.2
name:                base-noprelude
version:             4.11.0.0

synopsis:            "base" package sans "Prelude" module
homepage:            https://github.com/hvr/base-noprelude
bug-reports:         https://github.com/hvr/base-noprelude/issues
license:             BSD-3-Clause
license-file:        LICENSE
author:              Herbert Valerio Riedel
maintainer:          hvr@gnu.org
category:            Development
build-type:          Simple
description:
    This package simplifies defining custom "Prelude"s without having
    to use @-XNoImplicitPrelude@ by re-exporting the full module-hierarchy of
    the [base-4.11.0.0](https://hackage.haskell.org/package/base-4.11.0.0)
    package /except/ for the "Prelude" module.
    .
    Starting with GHC 7.10 & Cabal-1.22 this package makes use of the
    package-level @reexported-modules@ feature.
    .
    Each version of @base-noprelude@ depends on a specific
    @base@-version and thus mirrors @base@'s
    versioning (with the exception that @base-noprelude@ needs to add an
    /additional/ 5th version component in case of bug-fix releases).
    .
    See <https://github.com/hvr/base-noprelude> for more information.

source-repository head
    type:     git
    location: https://github.com/hvr/base-noprelude.git

library
    build-depends:       base ==4.11.0.0
    default-language:    Haskell2010

    -- not really needed since reexported-modules wouldn't clash with
    -- base's modules, but kept nevertheless for consistency with
    -- pre-GHC-7.10 versions of base-noprelude which were non-exposed
    -- as well
    exposed: False

    -- re-exported modules copied from base-4.10.1.0's exposed-modules
    reexported-modules:
        Control.Applicative,
        Control.Arrow,
        Control.Category,
        Control.Concurrent,
        Control.Concurrent.Chan,
        Control.Concurrent.MVar,
        Control.Concurrent.QSem,
        Control.Concurrent.QSemN,
        Control.Exception,
        Control.Exception.Base,
        Control.Monad,
        Control.Monad.Fail,
        Control.Monad.Fix,
        Control.Monad.Instances,
        Control.Monad.IO.Class,
        Control.Monad.ST,
        Control.Monad.ST.Lazy,
        Control.Monad.ST.Lazy.Safe,
        Control.Monad.ST.Lazy.Unsafe,
        Control.Monad.ST.Safe,
        Control.Monad.ST.Strict,
        Control.Monad.ST.Unsafe,
        Control.Monad.Zip,
        Data.Bifoldable,
        Data.Bifunctor,
        Data.Bitraversable,
        Data.Bits,
        Data.Bool,
        Data.Char,
        Data.Coerce,
        Data.Complex,
        Data.Data,
        Data.Dynamic,
        Data.Either,
        Data.Eq,
        Data.Fixed,
        Data.Foldable,
        Data.Function,
        Data.Functor,
        Data.Functor.Classes,
        Data.Functor.Compose,
        Data.Functor.Const,
        Data.Functor.Identity,
        Data.Functor.Product,
        Data.Functor.Sum,
        Data.IORef,
        Data.Int,
        Data.Ix,
        Data.Kind,
        Data.List,
        Data.List.NonEmpty,
        Data.Maybe,
        Data.Monoid,
        Data.Ord,
        Data.Proxy,
        Data.Ratio,
        Data.Semigroup,
        Data.STRef,
        Data.STRef.Lazy,
        Data.STRef.Strict,
        Data.String,
        Data.Traversable,
        Data.Tuple,
        Data.Type.Bool,
        Data.Type.Coercion,
        Data.Type.Equality,
        Data.Typeable,
        Data.Unique,
        Data.Version,
        Data.Void,
        Data.Word,
        Debug.Trace,
        Foreign,
        Foreign.C,
        Foreign.C.Error,
        Foreign.C.String,
        Foreign.C.Types,
        Foreign.Concurrent,
        Foreign.ForeignPtr,
        Foreign.ForeignPtr.Safe,
        Foreign.ForeignPtr.Unsafe,
        Foreign.Marshal,
        Foreign.Marshal.Alloc,
        Foreign.Marshal.Array,
        Foreign.Marshal.Error,
        Foreign.Marshal.Pool,
        Foreign.Marshal.Safe,
        Foreign.Marshal.Unsafe,
        Foreign.Marshal.Utils,
        Foreign.Ptr,
        Foreign.Safe,
        Foreign.StablePtr,
        Foreign.Storable,
        GHC.Arr,
        GHC.Base,
        GHC.ByteOrder,
        GHC.Char,
        GHC.Clock,
        GHC.Conc,
        GHC.Conc.IO,
        GHC.Conc.Signal,
        GHC.Conc.Sync,
        GHC.ConsoleHandler,
        GHC.Constants,
        GHC.Desugar,
        GHC.Enum,
        GHC.Environment,
        GHC.Err,
        GHC.Exception,
        GHC.ExecutionStack,
        GHC.ExecutionStack.Internal,
        GHC.Exts,
        GHC.Fingerprint,
        GHC.Fingerprint.Type,
        GHC.Float,
        GHC.Float.ConversionUtils,
        GHC.Float.RealFracMethods,
        GHC.Foreign,
        GHC.ForeignPtr,
        GHC.GHCi,
        GHC.Generics,
        GHC.IO,
        GHC.IO.Buffer,
        GHC.IO.BufferedIO,
        GHC.IO.Device,
        GHC.IO.Encoding,
        GHC.IO.Encoding.CodePage,
        GHC.IO.Encoding.Failure,
        GHC.IO.Encoding.Iconv,
        GHC.IO.Encoding.Latin1,
        GHC.IO.Encoding.Types,
        GHC.IO.Encoding.UTF16,
        GHC.IO.Encoding.UTF32,
        GHC.IO.Encoding.UTF8,
        GHC.IO.Exception,
        GHC.IO.FD,
        GHC.IO.Handle,
        GHC.IO.Handle.FD,
        GHC.IO.Handle.Internals,
        GHC.IO.Handle.Lock,
        GHC.IO.Handle.Text,
        GHC.IO.Handle.Types,
        GHC.IO.IOMode,
        GHC.IO.Unsafe,
        GHC.IOArray,
        GHC.IORef,
        GHC.Int,
        GHC.List,
        GHC.MVar,
        GHC.Natural,
        GHC.Num,
        GHC.OldList,
        GHC.OverloadedLabels,
        GHC.PArr,
        GHC.Pack,
        GHC.Profiling,
        GHC.Ptr,
        GHC.Read,
        GHC.Real,
        GHC.Records,
        GHC.RTS.Flags,
        GHC.ST,
        GHC.StaticPtr,
        GHC.STRef,
        GHC.Show,
        GHC.Stable,
        GHC.Stack,
        GHC.Stack.CCS,
        GHC.Stack.Types,
        GHC.Stats,
        GHC.Storable,
        GHC.TopHandler,
        GHC.TypeLits,
        GHC.TypeNats,
        GHC.Unicode,
        GHC.Weak,
        GHC.Word,
        Numeric,
        Numeric.Natural,
        -- Prelude,
        System.CPUTime,
        System.Console.GetOpt,
        System.Environment,
        System.Environment.Blank,
        System.Exit,
        System.IO,
        System.IO.Error,
        System.IO.Unsafe,
        System.Info,
        System.Mem,
        System.Mem.StableName,
        System.Mem.Weak,
        System.Posix.Internals,
        System.Posix.Types,
        System.Timeout,
        Text.ParserCombinators.ReadP,
        Text.ParserCombinators.ReadPrec,
        Text.Printf,
        Text.Read,
        Text.Read.Lex,
        Text.Show,
        Text.Show.Functions,
        Type.Reflection,
        Type.Reflection.Unsafe,
        Unsafe.Coerce

    -- OS Specific
    if os(windows)
        reexported-modules:
            GHC.IO.Encoding.CodePage.API,
            GHC.IO.Encoding.CodePage.Table,
            GHC.Conc.Windows,
            GHC.Windows
    else
        reexported-modules:
            GHC.Event