Prelude: A Prelude module replacement

[ bsd3, library, prelude ] [ Propose Tags ]

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 base package's scope

  • Depend only on base (via base-noprelude) for recent GHC versions

  • Avoid partial functions being in scope by default; redefine common partial functions such as read or head to be Maybe-valued

  • Provide a uniform Prelude across multiple GHC releases (currently GHC 7.0 and newer supported) to the extent possible given typeclass restructurings such as AMP or FTP

  • Reduce import clutter by reexporting common verbs from modules such as Control.Monad and Control.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.0

is 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.0

and 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)

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.0.1
Dependencies base (>=4.3 && <4.14), fail (>=4.9 && <4.10), ghc-prim (>=0.2 && <0.3), semigroups (>=0.18.5 && <0.19), transformers (>=0.3.0.0 && <0.6) [details]
License BSD-3-Clause
Copyright 2017-2018 Herbert Valerio Riedel
Author Herbert Valerio Riedel
Maintainer hvr@gnu.org
Revised Revision 1 made by HerbertValerioRiedel at 2019-09-10T09:09:10Z
Category Prelude
Bug tracker https://github.com/hvr/Prelude/issues
Source repo head: git clone https://github.com/hvr/Prelude.git
Uploaded by HerbertValerioRiedel at 2018-08-29T17:01:41Z
Distributions NixOS:0.1.0.1
Downloads 1955 total (10 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-08-29 [all 1 reports]