This implements a number of changes to the machinery in Data.Functor.Classes.Generic. After this PR, I think it'll be "production-ready". These changes include:
In addition to liftEqDefaultet al., which work with versions of transformers other than 0.4, there is now eq1Default and friends, which work with the transformers-0.4 versions of Eq1, etc. Accordingly, Data.Functor.Classes.Generic can now be exposed if built against transformers-0.4.
I added Data.Functor.Classes.Generic.Internal, since there are some lower-level bits that might change in the future, but might be handy for programmers to have access to.
I fixed some bugs:
GRead1 now parses constructors and record selectors that contain #
Previously, there were no GEq1 nor GOrd1 instances for Rec1, so types like newtype Foo f a = Foo (f a) wouldn't have been able to be used with liftEqDefault or liftCompareDefault. This is now fixed.
This implements a number of changes to the machinery in
Data.Functor.Classes.Generic
. After this PR, I think it'll be "production-ready". These changes include:liftEqDefault
et al., which work with versions oftransformers
other than 0.4, there is noweq1Default
and friends, which work with thetransformers-0.4
versions ofEq1
, etc. Accordingly,Data.Functor.Classes.Generic
can now be exposed if built againsttransformers-0.4
.Data.Functor.Classes.Generic.Internal
, since there are some lower-level bits that might change in the future, but might be handy for programmers to have access to.GRead1
now parses constructors and record selectors that contain#
GEq1
norGOrd1
instances forRec1
, so types likenewtype Foo f a = Foo (f a)
wouldn't have been able to be used withliftEqDefault
orliftCompareDefault
. This is now fixed.