base-compat-batteries

base-compat with extra batteries

Version on this page:0.11.1
LTS Haskell 23.0:0.13.1
Stackage Nightly 2024-12-13:0.14.1
Latest on Hackage:0.14.1

See all snapshots base-compat-batteries appears in

MIT licensed and maintained by Simon Hengel, João Cristóvão, Ryan Scott
This version can be pinned in stack with:base-compat-batteries-0.11.1@sha256:2763af26f6bd118dc278b805988acc792443f08bd77da03ac5c438c2b1ab4aab,8666

Module documentation for 0.11.1

base-compat with extra batteries

Hackage Hackage Dependencies Haskell Programming Language BSD3 License

Scope

base-compat-batteries provides functions available in later versions of base to a wider range of compilers, without requiring you to use CPP pragmas in your code.

This package provides the same API as the base-compat library, but depends on compatibility packages (such as semigroups) to offer a wider support window than base-compat, which has no dependencies.

Like base-compat, base-compat-batteries does not add any orphan instances. There is a separate package base-orphans for that.

See here for a more comprehensive list of differences between base-compat and base-compat-batteries.

Changes

Changes in 0.11.1 [2020.01.27]

  • This coincides with the base-compat-0.11.1 release. Refer to the base-compat changelog for more details.

Changes in 0.11.0 [2019.09.06]

  • Reexport MonadFail(fail) from Prelude.Compat and Control.Monad.Compat.

    Because Prelude.Compat.fail now corresponds to the fail from MonadFail instead of Monad, some care is required to implement Monad.fail on pre-8.8 versions of GHC. The following template is recommended:

    import Prelude.Compat
    import qualified Control.Monad      as Monad
    import qualified Control.Monad.Fail as Fail
    
    data Blah a = ...
    
    instance Functor Blah where ...
    instance Applicative Blah where ...
    
    instance Monad.Monad Blah where
      (>>=) = ...
    #if !(MIN_VERSION_base(4,13,0))
      fail = Fail.fail
    #endif
    
    instance Fail.MonadFail Blah where
      fail = ...
    

    This approach is also backwards-compatible with previous releases of base-compat-batteries.

  • Introduce the Data.Type.Equality.Compat module, which reexports Data.Type.Equality from base (if using a sufficiently recent version of GHC) or the type-equality library (if using an old GHC).

  • This coincides with the base-compat-0.11.0 release. Refer to the base-compat changelog for more details.

Changes in 0.10.5 [2018.10.18]

  • This coincides with the base-compat-0.10.5 release. Refer to the base-compat changelog for more details.

Changes in 0.10.4 [2018.07.03]

  • Add a SafeHaskellSpec test which ensures that certain modules (such as Prelude.Compat) can be imported in the presence of Safe.
  • This coincides with the base-compat-0.10.4 release. Refer to the base-compat changelog for more details.

Changes in 0.10.3 [2018.07.02]

  • This coincides with the base-compat-0.10.3 release. Refer to the base-compat changelog for more details.

Changes in 0.10.2 [2018.07.02]

  • Sync with base-4.12/GHC 8.6
  • Introduce the Data.Functor.Contravariant.Compat module, which reexports Data.Functor.Contravariant from base (if using GHC 8.6 or later) or the contravariant library (if using an earlier version of GHC).
  • This coincides with the base-compat-0.10.2 release. Refer to the base-compat changelog for more details.

Changes in 0.10.1 [2018.04.10]

  • Add Data.List.NonEmpty.Compat.
  • Reexport (Data.Semigroup.<>) from Data.Monoid.Compat.
  • Tighten lower bounds of compat package dependencies.
  • This coincides with the base-compat-0.10.1 release. Refer to the base-compat changelog for more details.

Changes in 0.10.0 [2018.04.05]

  • Sync with base-4.11/GHC 8.4
  • This coincides with the base-compat-0.10 release. Refer to the base-compat changelog for more details.