concrete functor and monad transformers
#71Quantified Constraint in Instance Head
I think it makes sense to have a quantified constraint (forall m. Monad m => Monad (t m)) in the instance head of MonadTrans. I have tested this change and the one breaking change is that ExceptT e is only a MonadTrans for e with an error constraint. I have it on a branch on my account. I guess you'd probably want to do some CPP to make it not affect previous versions.
I made a patch for this, I'm not sure how to make a merge request https://hub.darcs.net/Icelandjack/transformers/patch/65b965a5495d73d8201943338d3c7a25fb1be233
transformers has always aimed at being standard Haskell. However, the laws for MonadTrans have always assumed that transformers produced monads, so it might be reasonable for this to be enforced with recent GHCs.
Is it true that the standalone kind signature is not strictly necessary?
Yes the standalone kind signature can go, there is a discussion here https://gitlab.haskell.org/ghc/ghc/-/issues/19922
With the deprecation of Error this extra requirement doesn't break anything
- status set to closed
done, thanks
Introduced regression https://hub.darcs.net/ross/transformers/issue/85 .