Closed RyanGlScott closed 8 years ago
There are also some other transformers
-related orphan instances that could be addressed. For example, the Data.Traversable.Instances
module from semigroupoids
currently has orphan Foldable (IdentityT m)
and Traversable (IdentityT m)
instances, but there isn't currently a way to backport these instances via transformers-compat
, since it's always had a Control.Monad.Trans.Identity
module.
The cleanest approach I could think of is to migrate all orphan instances to a single module (similar to Data.Orphans
from base-orphans
) and reexport it from each module in transformers-compat
that needs it.
I have no objection to adding a .Instances
module for those.
Pull request #13 fixes this (and more).
transformers-0.4.3.0
addedEq1
,Ord1
,Show1
, andRead1
instances forConst
fromControl.Applicative
. These instances would be useful for me in projects where I can't use the latest version oftransformers
, but the problem is I can't figure out what the best way of putting them intotransformers-compat
is. We could define the instances intransformers-compat
's backportedData.Functor.Classes
module, but then they wouldn't be visible when usingtransformers
0.4.0.0 through 0.4.2.0. Perhaps it would be best to create aControl.Monad.Trans.Instances
module, define them there as orphan instances, and import that from the backportedData.Functor.Classes
module? I'm not sure what the best approach would be.