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]