<html><head></head><body>I updated trac to reflect this discussion.<br><br><div class="gmail_quote">On October 25, 2018 1:45:40 PM UTC, Edward Kmett <ekmett@gmail.com> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">While I’m weakly against the IsString version, I’m pretty strongly against both of these variants. They actively get in the way of a user who wants to treat the parameter uniformly.<br><br>-Edward<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">On Oct 25, 2018, at 8:06 AM, Daniel Bergey <bergey@teallabs.org> wrote:<br><br>I meant something like <br><br>foo :: MonadFail m => A -> m Foo<br><br>Sorry if my first version without input caused confusion.<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;">On October 25, 2018 11:48:44 AM UTC, Daniel Bergey <bergey@alum.mit.edu> wrote:<br><br>When a library provides a funct<br>foo :: MonadFail m => m Foo<br><br>I usually want to recover from failure while logging the failure<br>message. I can do this with the IO instance, but then it's not obvius<br>that all errors are getting caught. If I'm not in IO, and I want the<br>error text, I think I'm out of luck.<br><br>On October 25, 2018 7:21:51 AM UTC, David Feuer <david.feuer@gmail.com><br>wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;">Another option is to be agnostic about it with FlexibleInstances:<br><br>  instance MonadFail (Either [Char]) where<br>    fail = Left<br><br>That'll work today, and leave the question of the ultimate constraint<br>open.<br>It's not Haskell 2010, but no one can take advantage of that fact.<br><br>I'm only raising that as an option; I don't really like it terribly<br>much.<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;">On Thu, Oct 25, 2018, 3:05 AM Edward Kmett <ekmett@gmail.com> wrote:<br><br>I'm also weakly inclined against it.<br><br>If we decided we really wanted something, then building a class that<br></blockquote>was<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;">just for this purpose might work, sort of an updated version of the<br></blockquote>old<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;">'Error' class from transformers, but now limited to just the failure<br></blockquote>string<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;">so it has no extra baggage.<br><br>On the other hand, that then faces inertia problems all its own.<br><br>-Edward<br><br>On Wed, Oct 24, 2018 at 11:42 PM David Feuer <david.feuer@gmail.com><br>wrote:<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #e9b96e; padding-left: 1ex;">FWIW, I think I'm weakly opposed. Either is Haskell 98. MonadFail<br></blockquote></blockquote></blockquote>is<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #e9b96e; padding-left: 1ex;">solidly "standards-track" material, to the extent that designation<br></blockquote></blockquote>is<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #e9b96e; padding-left: 1ex;">meaningful<br>at the moment. IsString ... isn't.<br>On Wed, Oct 24, 2018 at 10:44 PM Daniel Bergey<br></blockquote></blockquote></blockquote><bergey@alum.mit.edu><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #e9b96e; padding-left: 1ex;">wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ccc; padding-left: 1ex;"><br>Is there still consensus in favor of adding this instance?<br><br>instance IsString str => MonadFail (Either str) where<br>   fail = Left . fromString<br><br>In 2016 there was some discussion, and my reading is that there<br></blockquote></blockquote></blockquote>was<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #e9b96e; padding-left: 1ex;">consensus in favor at the time:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ccc; padding-left: 1ex;">Trac: <a href="https://ghc.haskell.org/trac/ghc/ticket/12160">https://ghc.haskell.org/trac/ghc/ticket/12160</a><br>libaries mailing list:<br></blockquote><br></blockquote></blockquote></blockquote><a href="https://mail.haskell.org/pipermail/libraries/2016-August/027248.html">https://mail.haskell.org/pipermail/libraries/2016-August/027248.html</a><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #8ae234; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #e9b96e; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ccc; padding-left: 1ex;"><br>Does anyone know of a later decision not to add it, or was it<br></blockquote></blockquote></blockquote>simply no<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #fcaf3e; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #e9b96e; padding-left: 1ex;">one's top priority?<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ccc; padding-left: 1ex;"><br>What is the next step to move this proposal forward?  Is more<br></blockquote>discussion in order?  Should I just submit a patch?<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ccc; padding-left: 1ex;"><br>Thanks,<br>bergey<hr>Libraries mailing list<br>Libraries@haskell.org<br><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br></blockquote><hr>Libraries mailing list<br>Libraries@haskell.org<br><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br><br></blockquote><br></blockquote></blockquote></blockquote></blockquote></pre></blockquote></div></body></html>