## 0.9 [2021.10.31] * Require `singletons-base-3.1` and GHC 9.2. * Add `{e,E}limProxy` to `Data.Eliminator`. * `Data.Eliminator` no longer exports `{e,E}limFirst` and `{e,E}limLast` eliminators. If you wish to use eliminators that work over `First`/`Last` from `Data.Monoid`, you must import them `Data.Eliminator.Monoid`. If you wish to use eliminators that over `First`/`Last` from `Data.Semigroup`, you must import them from the new `Data.Eliminator.Semigroup` module. * `Data.Eliminator` no longer exports `{e,E}limProduct` and `{e,E}limSum` eliminators. If you wish to use eliminators that work over `Product`/`Sum` from `Data.Monoid` or `Data.Semigroup`, you must import them `Data.Eliminator.Monoid` or `Data.Eliminator.Semigroup`. If you wish to use eliminators that over `Product`/`Sum` from `Data.Functor.Product`/`Data.Functor.Sum`, you must import them from the new `Data.Eliminator.Functor` module. ## 0.8 [2021.03.12] * Require `singletons-base-3.0` and GHC 9.0. * Remove eliminators for `Data.Semigroup.Option`, which is deprecated as of `base-4.15.0.0`. ## 0.7 [2020.03.25] * Require `singletons-2.7` and GHC 8.10. * Add experimental support for generating type-level eliminators through the `deriveTypeElim` and `deriveTypeElimNamed` functions. * Add eliminators for `All`, `Any`, `Arg`, `Const`, `Down`, `Dual`, `First`, `Identity`, `Last`, `Max`, `Min`, `Option`, `Product`, `Sum`, and `WrappedMonoid`. ## 0.6 [2019.08.27] * Require `singletons-2.6` and GHC 8.8. ### 0.5.1 [2019.04.26] * Support `th-abstraction-0.3.0.0` or later. ## 0.5 [2018.09.18] * Require `singletons-2.5` and GHC 8.6. ### 0.4.1 [2018.02.13] * Add `elimVoid` to `Data.Eliminator`. ## 0.4 [2018.01.09] * Require `singletons-2.4` and GHC 8.4. ## 0.3 [2017-11-07] * Migrate the old `elimNat` from `Data.Eliminator` (which worked over the `Nat` from `GHC.TypeNats`) to `Data.Eliminator.TypeNats`. There `elimNat` that now lives in `Data.Eliminator` is for an unrelated `Nat` data type from the `singleton-nats` package (which is a proper, inductively defined, Peano natural number type). ## 0.2 [2017-07-22] * Introduce the `Data.Eliminator.TH` module, which provides functionality for generating eliminator functions using Template Haskell. Currently, only simple algebraic data types that do not use polymorphic recursion are supported. * All eliminators now use predicates with `(~>)`. ## 0.1 [2017-07-02] * Initial release.