base-compat-batteries

base-compat with extra batteries

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

MIT licensed and maintained by Simon Hengel, João Cristóvão, Ryan Scott

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.2 [2020.09.30]

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

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.