A Prelude module replacement.
This package provides a Prelude module drop-in replacement for base's Prelude module.
Goals of this package include:
Be reasonably modest and remain close in spirit to the
basepackage's scopeDepend only on
base(viabase-noprelude) for recent GHC versionsAvoid partial functions being in scope by default; redefine common partial functions such as
readorheadto beMaybe-valuedProvide a uniform
Preludeacross multiple GHC releases (currently GHC 7.0 and newer supported) to the extent possible given typeclass restructurings such as AMP or FTPReduce
importclutter by reexporting common verbs from modules such asControl.MonadandControl.Applicative
Versioning and Usage
This package is intended to be used in combination with base-noprelude and possibly base-orphans. Prelude strives to be faithful to the PVP; however, for technical reasons Prelude's API is not fully determined by its version due to changes in core typeclasses and consequently it's strongly advised to declare a dependency on Prelude always in conjunction with a dependency on base-noprelude.
For instance, all you need to do in order to use this package if you were previously depending on base via
build-depends:
base (>= 4.3.0.0 && < 4.11) || ^>= 4.11.0.0is to replace base by base-noprelude and also add a dependency on Prelude like so
build-depends:
Prelude ^>= 0.1.0.0
, base-noprelude (>= 4.3.0.0 && < 4.11) || ^>= 4.11.0.0and this will effectively replace the implicit Prelude module.
Alternatively, if you only intend to support GHC 7.10 and newer, you can make use mixins like so
build-depends:
Prelude ^>= 0.1.0.0
, base (>= 4.8.0.0 && < 4.12) || ^>= 4.12.0.0
mixins: base hiding (Prelude)