- Require
singletons-base-3.4
and GHC 9.10.
- Require
singletons-base-3.3
and GHC 9.8.
- Require
singletons-base-3.2
and GHC 9.6.
- Support building with
th-abstraction-0.5.*
.
- Require GHC 9.4.
- Add
Data.Eliminator.TypeLits
, which re-exportsData.Eliminator.TypeNats.elimNat
and adds a newelimSymbol
eliminator forGHC.TypeLits.Symbol
.
- Require
singletons-base-3.1
and GHC 9.2. - Add
{e,E}limProxy
toData.Eliminator
. Data.Eliminator
no longer exports{e,E}limFirst
and{e,E}limLast
eliminators. If you wish to use eliminators that work overFirst
/Last
fromData.Monoid
, you must import themData.Eliminator.Monoid
. If you wish to use eliminators that overFirst
/Last
fromData.Semigroup
, you must import them from the newData.Eliminator.Semigroup
module.Data.Eliminator
no longer exports{e,E}limProduct
and{e,E}limSum
eliminators. If you wish to use eliminators that work overProduct
/Sum
fromData.Monoid
orData.Semigroup
, you must import themData.Eliminator.Monoid
orData.Eliminator.Semigroup
. If you wish to use eliminators that overProduct
/Sum
fromData.Functor.Product
/Data.Functor.Sum
, you must import them from the newData.Eliminator.Functor
module.
- Require
singletons-base-3.0
and GHC 9.0. - Remove eliminators for
Data.Semigroup.Option
, which is deprecated as ofbase-4.15.0.0
.
- Require
singletons-2.7
and GHC 8.10. - Add experimental support for generating type-level eliminators through the
deriveTypeElim
andderiveTypeElimNamed
functions. - Add eliminators for
All
,Any
,Arg
,Const
,Down
,Dual
,First
,Identity
,Last
,Max
,Min
,Option
,Product
,Sum
, andWrappedMonoid
.
- Require
singletons-2.6
and GHC 8.8.
- Support
th-abstraction-0.3.0.0
or later.
- Require
singletons-2.5
and GHC 8.6.
- Add
elimVoid
toData.Eliminator
.
- Require
singletons-2.4
and GHC 8.4.
- Migrate the old
elimNat
fromData.Eliminator
(which worked over theNat
fromGHC.TypeNats
) toData.Eliminator.TypeNats
. ThereelimNat
that now lives inData.Eliminator
is for an unrelatedNat
data type from thesingleton-nats
package (which is a proper, inductively defined, Peano natural number type).
- 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
(~>)
.
- Initial release.