<p dir="ltr">Hello.</p>
<p dir="ltr">I'm coming with a proposal for removing transformers dependency<br>
from ghc library. The reason for this proposal that it's not possible<br>
to build consistent environment where a modern libraries (that depend<br>
on a newer transformers or mtl-2.2) and libraries that use ghc API<br>
are used together. And often people are tend to use version that is<br>
bundled with ghc, even if newer are available.</p>
<p dir="ltr">As transformers usage are quite limited in ghc, and it's really relevant<br>
in ghc-bin, it's possible to duplicate the code, and provide required<br>
fixes in ghc-bin.cabal. As a result ghc uses it's own MonadIO, MonadControl<br>
and Strict State, and ghc-bin.cabal (ghc/*) uses ones from transformers.</p>
<p dir="ltr">I have prepared a proof of concept [1], however it doesn't look very clean<br>
and it's quite possible that will require some generalization, for example<br>
introduction of the ghc-transformers-instances package that will have<br>
all required instances.</p>
<p dir="ltr">Should I continue doing this? Are there any things to consider and fix?</p>
<p dir="ltr">[1] <a href="https://github.com/qnikst/ghc/compare/wip/remove-tf">https://github.com/qnikst/ghc/compare/wip/remove-tf</a><br>
<font color="#888888">-- </font><br>
<font color="#888888">Alexander</font><br>
</p>