The most complete prelude formed solely from the "base" package

Version on this page:
LTS Haskell 22.30:
Stackage Nightly 2024-07-22:
Latest on Hackage:

See all snapshots base-prelude appears in

MIT licensed and maintained by Nikita Volkov
This version can be pinned in stack with:base-prelude-,1416

Module documentation for

A library which aims to reexport all the non-conflicting and most general definitions from the "base" package. This includes APIs for applicatives, arrows, monoids, foldables, traversables, exceptions, generics, ST, MVars and STM.

This package will never have any dependencies other than "base".

Versioning policy

The versioning policy of this package deviates from PVP in the sense that its exports in part are transitively determined by the version of "base". Therefore it's recommended for the users of "base-prelude" to specify the bounds of "base" as well.



  • Relaxed the “base” dependency


No changes.


  • Reexported Data.Bifunctor.

  • first and second are now (conditionally) exported from Data.Bifunctor, not Control.Arrow; note that if your version of base is lower than 4.8, first and second won’t be available at all.


  • Reexported printf and hPrintf from Text.Printf.


  • Reexported Numeric.


  • Avoided the clash between (&) and sortOn defined in the package and versions of these functions imported from base.


  • Added implementations of (&) and sortOn (normally not available in older versions of base).


  • Reexported Control.Monad.Fix.