packages feed

base-compat-0.10.2: CHANGES.markdown

## Changes in 0.10.2 [2018.07.02]
 - Sync with `base-4.12`/GHC 8.6
 - Backport `RuntimeRep`-polymorphic versions of `($!)` and `throw` to
   `Prelude.Compat` and `Control.Exception.Compat`, respectively
   (if using `base-4.10`/GHC 8.2 or later).
 - Introduce the `Data.Functor.Contravariant.Compat` module, which reexports
   `Data.Functor.Contravariant` if using `base-4.12`/GHC 8.6 or later.

   See `Data.Functor.Contravariant.Compat` in the corresponding
   `base-compat-batteries` release for a version with a wider support window.

## Changes in 0.10.1 [2018.04.10]
 - Add `Data.List.NonEmpty.Compat`.
 - Reexport `(Data.Semigroup.<>)` from `Data.Monoid.Compat` back to `base-4.9`.

## Changes in 0.10.0 [2018.04.05]
 - Sync with `base-4.11`/GHC 8.4
 - Backport `Semigroup((<>))` to `Prelude.Compat`.

   Note that the `Semigroup` class has only been in `base` since
   `base-4.9`/GHC 8.0, so accordingly, this can only be backported back
   to GHC 8.0. If you wish to have a version of `Prelude.Compat` that backports
   `Semigroup` to older GHCs (by conditionally depending on the `semigroups`
   library), use the `Prelude.Compat` module from the `base-compat-batteries`
   package.
 - Backport `(<&>)` to `Data.Functor.Compat`
 - Backport `iterate'` to `Data.List.Compat`
 - Backport `showHFloat` to `Numeric.Compat`
 - Backport a `RuntimeRep`-polymorphic `withTypeable` function to
   `Type.Reflection.Compat`. (This is only exported on `base-4.10`/GHC 8.2.)
 - Introduce the following modules, back until the oldest version of `base`
   that can support backporting them. If you wish to use them in conjunction
   with older versions of `base`, use the `base-compat-batteries` package.
   - `Control.Monad.Fail.Compat` (back until `base-4.9`/GHC 8.0)
   - `Control.Monad.IO.Class.Compat` (back until `base-4.9`/GHC 8.0)
   - `Data.Bifunctor` (back until `base-4.8`/GHC 7.10)
   - `Data.Bifoldable` and `Data.Bitraversable` (back until `base-4.10`/GHC 8.2)
   - `Data.Functor.Compose.Compat`, `Data.Functor.Product.Compat`, and
     `Data.Functor.Sum.Compat` (back until `base-4.9`/GHC 8.0)
   - `Data.Functor.Identity.Compat` (back until `base-4.8`/GHC 7.10)
   - `Data.Semigroup.Compat` (back until `base-4.9`/GHC 8.0)
   - `Data.Void.Compat` (back until `base-4.8`/GHC 7.10)
   - `Numeric.Natural.Compat` (back until `base-4.8`/GHC 7.10)
 - Introduce versions of modules with the suffix `.Repl`. These simply reexport
   the contents of their counterparts without the `.Repl` suffix to provide
   a globally unique namespace to import from in the event one wants to import
   `base-compat` modules into GHCi. (In `base-compat-batteries`, the
   corresponding suffix is `.Repl.Batteries`.)

## Changes in 0.9.3 [2017.04.10]
 - Sync with `base-4.10`/GHC 8.2
 - Backport `fromLeft`/`fromRight` to `Data.Either.Compat`
 - Backport implementations of `maximumBy`/`minimumBy` which use constant stack
   space to `Data.Foldable.Compat`
 - Backport `asProxyTypeOf` with a generalized type signature to
   `Data.Proxy.Compat`
 - Backport `gcoerceWith` to `Data.Type.Coercion.Compat`
 - Backport `plusForeignPtr` to `Foreign.ForeignPtr.Compat`

## Changes in 0.9.2
 - Allow building on the HaLVM

## Changes in 0.9.1
 - Use the more efficient version of `replicateM` and `replicateM_` introduced
   in `base-4.9`

## Changes in 0.9.0
 - Sync with `base-4.9`/GHC 8.0
 - Weakened `RealFloat` constraints on `realPart`, `imagPart`, `conjugate`,
   `mkPolar`, and `cis` in `Data.Complex.Compat`
 - Backport `Foreign.ForeignPtr.Safe` and `Foreign.Marshal.Safe`
 - Generalize `filterM`, `forever`, `mapAndUnzipM`, `zipWithM`, `zipWithM_`,
   `replicateM`, and `replicateM_` in `Control.Monad` from `Monad` to
   `Applicative`
 - Backport `.Unsafe.Compat` modules (for `Control.Monad.ST`,
   `Control.Monad.ST.Lazy`, `Foreign.ForeignPtr`, and `Foreign.Marshal`)
 - Backport `forkFinally` and `forkOSWithUnmask` to `Control.Concurrent.Compat`
 - Backport `Data.Functor.Const`
 - Backport `modifyIORef'`, `atomicModifyIORef'` and `atomicWriteIORef` to
   `Data.IORef.Compat`
 - `Data.Ratio.{denominator,numerator}` have no `Integral` constraint anymore
 - Backport `modifySTRef'` to `Data.STRef.Compat`
 - Export `String`, `lines`, `words`, `unlines`, and `unwords` to
   `Data.String.Compat`
 - Generalize `Debug.Trace.{traceM, traceShowM}` from `Monad` to `Applicative`
 - Backport `errorWithoutStackTrace` to `Prelude.Compat`
 - Backport `unsafeFixIO` and `unsafeDupablePerformIO` to
   `System.IO.Unsafe.Compat`

## Changes in 0.8.2
 - Backport `bitDefault`, `testBitDefault`, and `popCountDefault` in
   `Data.Bits.Compat` to all versions of `base`
   - Backport `toIntegralSized` to `base-4.7`
 - Backport `nub` and `nubBy` (as well as `union` and `unionBy`, which are
   implemented in terms of them) to fix logic error in `Data.List.Compat`
 - Backport `byteSwap16`, `byteSwap32`, and `byteSwap64` to `Data.Word.Compat`
 - Backport `fillBytes` in `Foreign.Marshal.Utils.Compat`
 - Backport `showFFloatAlt` and `showGFloatAlt` to `Numeric.Compat`

## Changes in 0.8.1.1
 - Fixed Windows build

## Changes in 0.8.1
 - Implement `setEnv` and `unsetEnv` in `System.Environment.Compat` (which were
   ported from the `setenv` package). As a result, `base-compat` now depends
   on `unix` on POSIX-like operating systems.
 - Drop GHC 6.12 (and `base-4.2.0.0`) compatibility

## Changes in 0.8.0.1
 - Retrospective version bump updating the changelog to reflect the changes
   made in 0.8.0

## Changes 0.8.0
 - All orphan instances were split off into a separate package,
   [`base-orphans`](https://github.com/haskell-compat/base-orphans)
 - `base-compat` no longer redefines the data types `Down` and `Alt`. See
   [here](https://github.com/haskell-compat/base-compat/issues/17) for
   the discussion that led to this change.
 - Update `Control.Monad.Compat` for `base-4.8.0.0`
 - Update `Data.List.Compat` for `base-4.8.0.0`
 - Update `Data.Foldable.Compat` for `base-4.8.0.0`

## Changes in 0.7.1
 - Backported `Alt` to `Data.Monoid.Compat`
 - Backported `Down` to `Data.Ord.Compat`

## Changes in 0.7.0
 - Add functions and orphan instances introduced by changes to
   `base-4.7.0.0` and `base-4.8.0.0`

## Changes in 0.6.0
 - Update `Prelude.Compat` for `base-4.8.0.0` and AMP

## Changes in 0.5.0
 - Remove Control.Exception.Base.Compat and GHC.Exception.Compat
 - Add System.Exit.Compat.die
 - Compatibility with base-4.7.1

## Changes in 0.4.1
 - Add `setEnv` and `unsetEnv` to `System.Environment.Compat`

## Changes in 0.4.0
 - Major refactoring: base-compat no longer aims to replace all base,
   only new code is included in module .Compat
 - Removed stubbed modules
 - Removed generation scripts

## Changes in 0.3
 - Added functions from Base 4.7 (bool, isLeft, isRight)
 - Added instances from Base 4.7 (Either Foldable, Traversable,...)

## Changes in 0.2.1
 - Fix build on windows

## Changes in 0.2.0
 - Re-export everything from base
 - provides access to `VERSION_base` and `MIN_VERSION_base` CPP macros (with
   `#include "base-compat.h"`)
 - Do not re-export `System.IO.Error.catch` from `Prelude` for `base` < 4.6.0
 - Add `Eq`/`Ord` instance for `ErrorCall`
 - Remove `GHC.IOBase`, `GHC.Handle`, `Control.Concurrent.QSem`,
   `Control.Concurrent.QSemN`, `Control.Concurrent.SampleVar`, `Data.HashTable`

## Changes in 0.1.0
 - Remove getExecutablePath, it did not work with GHC < 7.2 (patches welcome!)
 - Add `<>`