MIT licensed and maintained by Nikita Volkov
This version can be pinned in stack with:base-prelude-1.6.1@sha256:cde51401d5e4590fc7c581939ad6111630c5809e91692f362232d8299eb8477b,1590

Module documentation for 1.6.1

Depends on 1 package(full list with versions):
Used by 1 package in nightly-2023-02-03(full list with versions):

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".

Besides a rich prelude it provides limited ones like BasePrelude.DataTypes, which only exports the data-types defined across the "base" package, and BasePrelude.Operators, which only exports the common operators.

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.



  • Restrict to min GHC 8.6
  • Add Contravariant
  • Add OverloadedLabels and Records
  • Add STM.orElse


  • Exclude Data.Semigroup.Option
  • Restrict to min GHC 8.4
  • Add focused preludes for data types and operators


  • Restrict to min GHC 8.0 and give preference to MonadFail
  • Add IsList, Generic1 and export all of System.IO


  • Give preference to Semigroup definitions over Monoid


  • Replace the Foreign export with Foreign.Storable, Foreign.Ptr, Foreign.ForeignPtr, Foreign.StablePtr. It’s more conservative and way less likely to cause name collisions.


  • Export Foreign


  • 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.