Closed RyanGlScott closed 8 years ago
There's just the issue that depending on transfomers-compat
(which pulls in mtl
) will have serious ramifications since GHC currently has to ship with haskeline
in its global package db, and until Cabal is extended to make use of GHC 7.10's new multi-instance feature, it would be unfortunate to have haskeline
start depending on additional dependencies.
Oh yeah, I forgot about that. In the meantime, I changed my pull request to use CPP pragmas so that haskeline
only provides a MonadException
instance for ExceptT
on transformers-0.4
+.
This has the disadvantage that those who still need to use transformers-0.3
(i.e., GHC 7.8 users) won't be able to take advantage of the new MonadException ExceptT
instance, but I suppose someone can release a haskeline-compat
package if they really want it :)
Is it okay to create some package named haskeline-mtl
and put my favorite instances of MonadException
there?
Currently, there are no
MonadException
instances forExceptT
, strictWriterT
, strictRWST
, or lazyStateT
fromtransformers
, so this pull request adds them. SinceExceptT
was only introduced intransformers-0.4
, this usestransformers-compat
to ensure thatExceptT
is always defined so that users oftransformers-0.3
and earlier can make use of theMonadException (ExceptT e m)
instance.This fixes issue #18.