cabal-version: 3.0 name: base version: 4.16.3.0 -- NOTE: Don't forget to update ./changelog.md license: BSD-3-Clause license-file: LICENSE maintainer: libraries@haskell.org bug-reports: https://gitlab.haskell.org/ghc/ghc/issues/new synopsis: Basic libraries category: Prelude build-type: Configure description: This package contains the Standard Haskell "Prelude" and its support libraries, and a large collection of useful libraries ranging from data structures to parsing combinators and debugging utilities. extra-tmp-files: autom4te.cache base.buildinfo config.log config.status include/EventConfig.h include/HsBaseConfig.h extra-source-files: aclocal.m4 base.buildinfo.in changelog.md config.guess config.sub configure configure.ac include/CTypes.h include/EventConfig.h.in include/HsBaseConfig.h.in include/ieee-flpt.h include/md5.h include/fs.h include/winio_structs.h install-sh source-repository head type: git location: https://gitlab.haskell.org/ghc/ghc.git subdir: libraries/base Library default-language: Haskell2010 other-extensions: BangPatterns CApiFFI CPP ConstraintKinds DataKinds DeriveDataTypeable DeriveGeneric ExistentialQuantification ExplicitForAll FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving KindSignatures MagicHash MultiParamTypeClasses NegativeLiterals NoImplicitPrelude NondecreasingIndentation OverloadedStrings ParallelArrays PolyKinds RankNTypes RecordWildCards RoleAnnotations Safe ScopedTypeVariables StandaloneDeriving Trustworthy TypeFamilies TypeOperators TypeSynonymInstances UnboxedTuples UndecidableInstances UnliftedFFITypes Unsafe build-depends: rts == 1.0.*, ghc-prim >= 0.5.1.0 && < 0.9, ghc-bignum >= 1.0 && < 2.0 exposed-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.Contravariant 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.Type.Ord 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.Bits 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.Event.TimeOut GHC.Exception GHC.Exception.Type 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.GHCi.Helpers 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.IO.StdHandles GHC.IO.SubSystem GHC.IOArray GHC.IORef GHC.Int GHC.Integer GHC.Integer.Logarithms GHC.Ix GHC.List GHC.Maybe GHC.MVar GHC.Natural GHC.Num GHC.OldList GHC.OverloadedLabels GHC.Pack GHC.Profiling GHC.Ptr GHC.Read GHC.Real GHC.Records GHC.ResponseFile GHC.RTS.Flags GHC.ST GHC.StaticPtr GHC.STRef GHC.Show GHC.Stable GHC.StableName GHC.Stack GHC.Stack.CCS GHC.Stack.Types GHC.Stats GHC.Storable GHC.TopHandler GHC.TypeLits GHC.TypeLits.Internal GHC.TypeNats GHC.TypeNats.Internal 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 -- TODO: remove GHC.IOPort reexported-modules: GHC.Num.Integer , GHC.Num.Natural , GHC.Num.BigNat other-modules: Control.Monad.ST.Imp Control.Monad.ST.Lazy.Imp Data.Functor.Utils Data.OldList Data.Semigroup.Internal Data.Typeable.Internal Foreign.ForeignPtr.Imp GHC.IO.Handle.Lock.Common GHC.IO.Handle.Lock.Flock GHC.IO.Handle.Lock.LinuxOFD GHC.IO.Handle.Lock.NoOp GHC.IO.Handle.Lock.Windows GHC.StaticPtr.Internal GHC.Event.Arr GHC.Event.Array GHC.Event.Internal GHC.Event.Internal.Types GHC.Event.IntTable GHC.Event.IntVar GHC.Event.PSQ GHC.Event.Unique -- GHC.IOPort -- TODO: hide again after debug System.Environment.ExecutablePath System.CPUTime.Utils c-sources: cbits/DarwinUtils.c cbits/PrelIOUtils.c cbits/SetEnv.c cbits/WCsubst.c cbits/iconv.c cbits/inputReady.c cbits/md5.c cbits/primFloat.c cbits/sysconf.c cbits/fs.c cmm-sources: cbits/CastFloatWord.cmm include-dirs: include includes: HsBase.h install-includes: HsBase.h WCsubst.h consUtils.h -- OS Specific if os(windows) -- Windows requires some extra libraries for linking because the RTS -- is no longer re-exporting them. -- msvcrt: standard C library. The RTS will automatically include this, -- but is added for completeness. -- mingwex: provides C99 compatibility. libm is a stub on MingW. -- mingw32: Unfortunately required because of a resource leak between -- mingwex and mingw32. the __math_err symbol is defined in -- mingw32 which is required by mingwex. -- shlwapi: provides PathFileExistsW -- ws2_32: provides access to socket types and functions -- ole32: provides UUID functionality. -- rpcrt4: provides RPC UUID creation. -- ntdll: provides access to functions to inspect window handles extra-libraries: wsock32, user32, shell32, msvcrt, mingw32, mingwex, ws2_32, shlwapi, ole32, rpcrt4, ntdll -- Minimum supported Windows version. -- These numbers can be found at: -- https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx -- If we're compiling on windows, enforce that we only support Windows 7+ -- Adding this here means it doesn't have to be done in individual .c files -- and also centralizes the versioning. cpp-options: -D_WIN32_WINNT=0x06010000 cc-options: -D_WIN32_WINNT=0x06010000 exposed-modules: GHC.IO.Encoding.CodePage.API GHC.IO.Encoding.CodePage.Table GHC.Conc.Windows GHC.Conc.WinIO GHC.Conc.POSIX GHC.Conc.POSIX.Const GHC.Windows GHC.Event.Windows GHC.Event.Windows.Clock GHC.Event.Windows.ConsoleEvent GHC.Event.Windows.FFI GHC.Event.Windows.ManagedThreadPool GHC.Event.Windows.Thread GHC.IO.Handle.Windows GHC.IO.Windows.Handle GHC.IO.Windows.Encoding GHC.IO.Windows.Paths other-modules: System.CPUTime.Windows c-sources: cbits/Win32Utils.c cbits/consUtils.c cbits/IOutils.c else exposed-modules: GHC.Event other-modules: GHC.Event.Control GHC.Event.EPoll GHC.Event.KQueue GHC.Event.Manager GHC.Event.Poll GHC.Event.Thread GHC.Event.TimerManager System.CPUTime.Posix.ClockGetTime System.CPUTime.Posix.Times System.CPUTime.Posix.RUsage System.CPUTime.Unsupported -- The Ports framework always passes this flag when building software that -- uses iconv to make iconv from Ports compatible with iconv from the base system -- See /usr/ports/Mk/Uses/iconv.mk if os(freebsd) cc-options: -DLIBICONV_PLUG -- We need to set the unit id to base (without a version number) -- as it's magic. ghc-options: -this-unit-id base -- Make sure we don't accidentally regress into anti-patterns ghc-options: -Wcompat -Wnoncanonical-monad-instances