<div dir="ltr">MonadIO remains Haskell 98. This means that it has a chance of actually getting into core libraries in a standardizable form and eventually making it into the report.<div><br></div><div>The problem is there is no full description of MultiParamTypeClasses + FunctionalDependencies that is compatible with all the implementations out there to bless and readily standardize. GHC and Hugs (and older GHCs) disagree on a number of corner cases of how this works. </div><div><br></div><div>Worse, the corner cases where they disagree come up because of how GHC desugars things into type families, so describing current GHC behavior really would require dragging into the report pretty much all of OutsideIn(X), which is an order of magnitude more complicated than the entire report today.</div><div><br></div><div>So, yes, if we ever want to be able to see the bulk of the combinators in base lifted generalized and have that fact become enshrined in a standard then there is a very real reason to favor MonadIO.</div><div><br></div><div>-Edward</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 29, 2015 at 9:30 AM, Matthias Hörmann <span dir="ltr"><<a href="mailto:mhoermann@gmail.com" target="_blank">mhoermann@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Is there a particular reason to still push MonadIO even though<br>
MonadBase (from transformers-base) is a cleaner, more<br>
general approach that also fits much more nicely with more powerful<br>
abstractions like MonadBaseControl (from monad-control)?<br>
<br>
I know it uses MultiParamTypeClasses but is there another, more<br>
practical reason for not using MonadBase IO instead of MonadIO?<br>
<div class="HOEnZb"><div class="h5"><br>
On Thu, Jul 23, 2015 at 11:29 PM, Ryan Scott <<a href="mailto:ryan.gl.scott@gmail.com">ryan.gl.scott@gmail.com</a>> wrote:<br>
> It looks like GHC's internal MonadIO was replaced with the one from<br>
> transformers in 2013 [1], so this is already fixed.<br>
><br>
> Also, +1 on the MonadIO to base suggestion, now that's there's some<br>
> momentum behind that idea.<br>
><br>
> ----------<br>
> [1] <a href="http://git.haskell.org/ghc.git/blobdiff/b13d546f9c454e6d2a15c20a3e10ec47328e33db..71feb1025eed0c3cc849c85e2b00e16bc1a21790:/compiler/utils/MonadUtils.hs" rel="noreferrer" target="_blank">http://git.haskell.org/ghc.git/blobdiff/b13d546f9c454e6d2a15c20a3e10ec47328e33db..71feb1025eed0c3cc849c85e2b00e16bc1a21790:/compiler/utils/MonadUtils.hs</a><br>
> _______________________________________________<br>
> Libraries mailing list<br>
> <a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</div></div></blockquote></div><br></div>