0.7.2 [2022.06.26]
------------------
* Add `Eq`, `Ord`, `Read`, and `Show` instances for `FunctorClassesDefault` in
  `Data.Functor.Classes.Generic`.

0.7.1 [2021.10.30]
------------------
* Backport new instances from GHC 9.2/`base-4.16`
  * `Eq1`, `Read1`, and `Show1` instances for `Complex`
  * `Eq{1,2}`, `Ord{1,2}`, `Show{1,2}`, and `Read{1,2}` instances for `(,,)`
     and `(,,,)`

0.7 [2021.07.25]
----------------
* Backport changes from `transformers-0.6.*`:
  * Remove the long-deprecated `selectToCont` function from
    `Control.Monad.Trans.Select`.
  * Backport various `Generic`, `Generic1`, and `Data` instances.
  * Backport `handleE`, `tryE`, and `finallyE` to `Control.Monad.Trans.Except`.
  * Backport explicit implementations of `(<$)`, `liftA2`, `(*>)`, and `(<*)`
    for `Control.Applicative.Backwards`.
  * Backport a lazier implementation of `(<*>)` for `Control.Applicative.Lift`.

0.6.6 [2020.09.30]
------------------
* Add `FunctorClassesDefault`, an adapter newtype suitable for `DerivingVia`,
  to `Data.Functor.Classes.Generic`.
* Fix a bug in which `readsPrec1Default`/`liftReadsPrecDefault` would parse
  empty data types too strictly.

0.6.5 [2019.05.11]
------------------
* Ensure that the backported `MonadFail` instance for `ExceptT` is available
  when built against `transformers-0.4.*`.

0.6.4 [2019.04.01]
------------------
* Use more conservative CPP to guard the backported `MonadFix` instance for
  `ListT`.

0.6.3 [2019.04.01]
------------------
* Backport changes from `transformers-0.5.6.*`:
  * Backport the `MonadFix` instance for `ListT` in
    `Control.Monad.Trans.Instances`.
  * Generalize the type of `except` in `Control.Monad.Trans.Except`.
* Backport `MonadFail` instances for `AccumT`, `Reverse`, and `SelectT` on
  pre-8.0 versions of GHC by depending on the `fail` package if necessary.
* Backport `MonadFail` instances for monad transformer types in
  `Control.Monad.Trans.Instances`.

0.6.2
-----
* `transformers-compat` now uses automatic flags instead of manual ones.
  This has a number of benefits:

  * There is no need for making several simultaneous releases to support each
    flag combination.
  * As a result, the `cabal-install` constraint solver should have a much
    easier time figuring out install-plans involving `transformers-compat`.

  Due to old `cabal-install` bugs, `cabal-install-1.16` and older may have a
  harder time installing this package, so it is recommended that you use
  `cabal-install-1.18` or later. (Or, if you must use `cabal-install-1.16` or
  older, installing `transformers-compat` with the appropriate flags should
  help.)

0.6.1.6
-------
* Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.6.1 release notes describe the changes in this version.
  This release is configured with none of `-ftwo`, `-fthree`, `-ffour`, or `-ffive` (which works with `transformers-0.5.3` and above).

0.6.1.5
-------
* Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.6.1 release notes describe the changes in this version.
  This release is configured with `-ffive` (which works with `transformers-0.5` up until, but not including, `transformers-0.5.3`).

0.6.1.4
-------
* Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.6.1 release notes describe the changes in this version.
  This release is configured with `-ffour` (which works with the `transformers-0.4` series).

0.6.1.3
-------
* Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.6.1 release notes describe the changes in this version.
  This release is configured with `-fthree` (which works with the `transformers-0.3` series).

0.6.1.2
-------
* Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.6.1 release notes describe the changes in this version.
  This release is configured with `-ftwo` (which works with the `transformers-0.2` series).

0.6.1
-----
* Fix an oversight in which the `Control.Monad.Trans.Accum` and
  `Control.Monad.Trans.Select` modules were not backported when built with the
  `-ffour` flag.

0.6.0.6
-------
* Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.6 release notes describe the changes in this version.
  This release is configured with none of `-ftwo`, `-fthree`, `-ffour`, or `-ffive` (which works with `transformers-0.5.3` and above).

0.6.0.5
-------
* Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.6 release notes describe the changes in this version.
  This release is configured with `-ffive` (which works with `transformers-0.5` up until, but not including, `transformers-0.5.3`).

0.6.0.4
-------
* Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.6 release notes describe the changes in this version.
  This release is configured with `-ffour` (which works with the `transformers-0.4` series).

0.6.0.3
-------
* Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.6 release notes describe the changes in this version.
  This release is configured with `-fthree` (which works with the `transformers-0.3` series).

0.6.0.2
-------
* Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.6 release notes describe the changes in this version.
  This release is configured with `-ftwo` (which works with the `transformers-0.2` series).

0.6
---
* Introduce the `Data.Functor.Classes.Generic` module, which provides functions that can generically implement methods in the `Eq1`, `Ord1`, `Read1`, and `Show1` classes (without the usual boilerplate involved).
* Introduce the `generic-deriving` flag. When enabled, `transformers-compat` will depend on the `generic-deriving` library on older versions of GHC to backport `GHC.Generics` support for `Generic` instances and the machinery in `Data.Functor.Classes.Generic`.
* Some instances were present in `Data.Functor.Sum` but not in `Control.Monad.Trans.Instances` (e.g., the `Generic`, `Typeable`, and `Data` instances for `Sum`). This has been fixed.
* Backport changes from `transformers-0.5.5`:
  * Backport the `Semigroup` instance for `Constant`
  * Add `mapSelect` and `mapSelectT`
  * Define `selectToContT` (and deprecate `selectToCont` in favor of that)
  * Define some explicit `(*>)` definitions to avoid space leaks
* Backport changes from `transformers-0.5.4` (i.e., add `Bifoldable` and `Bitraversable` instances for `Data.Functor.Constant`)
* Backport changes from `transformers-0.5.3`:
  * Backport the `Control.Monad.Trans.Accum` and `Control.Monad.Trans.Select` modules
  * Backport the `eitherToErrors` and `elimLift` functions to `Control.Applicative.Lift`
  * Backport `Bits`, `FiniteBits`, `IsString`, `Num`, `Real`, `Integral`, `Fractional`, `Floating`, `RealFrac`, and `RealFloat` instances for `Data.Functor.Identity`
  * Backport `Monad`, `MonadFail`, and `MonadPlus` instances for `Data.Functor.Reverse`
  * Backport `Eq1`, `Ord1`, `Read1`, and `Show1` instances for `Data.Proxy`
* Backport changes from `transformers-0.5.2` (i.e., add more `INLINE` annotations)
* Backport changes from `transformers-0.5.1` (i.e., add `Bounded`, `Enum`, `Ix`, and `Storable` instances for `Identity`)

0.5.1.4
-------
* Each of versions 0.5.1.2–0.5.1.4 is a 0.5.1 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.5.1 release notes describe the changes in this version.
  This release is configured with neither `-ftwo` nor `-fthree` (which works with `transformers-0.4` and above).

0.5.1.3
-------
* Each of versions 0.5.1.2–0.5.1.4 is a 0.5.1 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.5.1 release notes describe the changes in this version.
  This release is configured with `-fthree` (which works with the `transformers-0.3` series).

0.5.1.2
-------
* Each of versions 0.5.1.2–0.5.1.4 is a 0.5.1 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.5.1 release notes describe the changes in this version.
  This release is configured with `-ftwo` (which works with the `transformers-0.2` series).

0.5.1
-----
* Fix a bug in which `PolyKinds` was enabled on GHC 7.4, resulting in interface file bugs on that version of GHC.

0.5.0.4
-------
* Each of versions 0.5.0.2–0.5.0.4 is a 0.5 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.5 release notes describe the changes in this version.
  This release is configured with neither `-ftwo` nor `-fthree` (which works with `transformers-0.4` and above).

0.5.0.3
-------
* Each of versions 0.5.0.2–0.5.0.4 is a 0.5 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.5 release notes describe the changes in this version.
  This release is configured with `-fthree` (which works with the `transformers-0.3` series).

0.5.0.2
-------
* Each of versions 0.5.0.2–0.5.0.4 is a 0.5 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.5 release notes describe the changes in this version.
  This release is configured with `-ftwo` (which works with the `transformers-0.2` series).

0.5
---
* Update `transformers-compat` to incorporate changes from the `transformers-0.5` series. These changes include:
  * The `Data.Functor.Classes` module was completely redesigned.
  * Modules now have `Safe` or `Trustworthy` annotations.
  * Data types and type synonyms are poly-kinded when possible.
* Add `Control.Monad.Trans.Instances`, a module of orphan instances that mimic instances available in later versions of `transformers`.

0.4.0.4
-------
* Each of versions 0.4.0.2–0.4.0.4 is a 0.4 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.4 release notes describe the changes in this version.
  This release is configured with neither `-ftwo` nor `-fthree` (which works with `transformers-0.4` and above).

0.4.0.3
-------
* Each of versions 0.4.0.2–0.4.0.4 is a 0.4 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.4 release notes describe the changes in this version.
  This release is configured with `-fthree` (which works with the `transformers-0.3` series).

0.4.0.2
-------
* Each of versions 0.4.0.2–0.4.0.4 is a 0.4 build with a different set of flags configured. Building this way allows us to work around bugs in `cabal`'s backtracker. The 0.4 release notes describe the changes in this version.
  This release is configured with `-ftwo` (which works with the `transformers-0.2` series).

0.4
---
* Added support for the missing `ExceptT` instances from `mtl`.

  This was not done lightly. While this means that by default incurring a dependency on `transformers-compat` drags in `mtl` when you are
  using an old `transformers`, it means that users do not have to orphan these instances and permits wider adoption of `ExceptT`.

  If you absolutely can't stand `mtl` and really want this package to build as valid `Haskell98`, then you can use `cabal install transformers-compat -f-mtl` to avoid incurring the dependency to get these instances. However, that is effectively an unsupported configuration.

0.3.3.4
-------
* Versions 0.3.3.2–0.3.3.4 were a successful attempt to fix build problems caused by the cabal backtracker.
* Each of these is a build with a different set of flags configured.
  This release is configured with neither `-ftwo` nor `-fthree` (which works with `transformers-0.4` and above).

0.3.3.3
-------
* Versions 0.3.3.2–0.3.3.4 were a successful attempt to fix build problems caused by the cabal backtracker.
* Each of these is a build with a different set of flags configured.
  This release is configured with `-fthree` (which works with the `transformers-0.3` series).

0.3.3.2
-------
* Versions 0.3.3.2–0.3.3.4 were a successful attempt to fix build problems caused by the cabal backtracker.
* Each of these is a build with a different set of flags configured.
  This release is configured with `-ftwo` (which works with the `transformers-0.2` series).

0.3.2
-----
* This release was a failed (or at least, only partially successful) attempt to fix build problems caused by the cabal backtracker.

0.3.1
-----
* `transformers 0.4.1` compatibility

0.3
---
* Added the instances for `Data.Functor.Classes` from `transformers 0.4`
* Switched `Control.Applicative.Backwards` and `Data.Functor.Reverse` to the split constructor/accessor style from `transformers 0.4`.

0.2
---
* Added the new types and classes from `transformers 0.4`

0.1.1.1
-------
* Wrote a better synopsis

0.1.1
-----
* Updated to trick `cabal` into building an empty `libHStransformers-compat-0.1.a` on GHC 7.6.

0.1
---
* Repository initialized by pulling the `transformers-0.2` compatibility layer out of `lens`.
