<div dir="ltr">Thanks Richard, I will file the bug shortly.<div><br></div><div>David, fail doesn't appear to be used at all, either for pattern match failure (which I initially expected), or for guards.  Example here: <a href="https://code.world/#P2ZO5lhXKM5QGYh-vRd31Ug">https://code.world/#P2ZO5lhXKM5QGYh-vRd31Ug</a></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 21, 2016 at 12:56 PM, David Menendez <span dir="ltr"><<a href="mailto:dave@zednenem.com" target="_blank">dave@zednenem.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class="">On Tue, Dec 20, 2016 at 3:53 AM, Chris Smith <span dir="ltr"><<a href="mailto:cdsmith@gmail.com" target="_blank">cdsmith@gmail.com</a>></span> wrote:<br></span><div class="gmail_extra"><span class=""><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hey everyone,<div><br></div><div>Can someone explain to me by GHC 8 causes list comprehension bindings to desugar to use 'fail', when RebindableSyntax is enabled in GHC 8?  Note that I do not have monad comprehensions enabled.  If I define fail, everything works (apparently regardless of what I define fail to do?!?), but I'd like to understand why it's necessary.</div><div></div></div></blockquote></div><div class="gmail_extra"><br></div></span>Perhaps fail is used by the translation for guards. I don’t have a working GHC right now, but what happens if you define fail = error and evaluate [ x | x <- “a", False]?<span class="HOEnZb"><font color="#888888"><br clear="all"><div><br></div>-- <br><div class="m_-6978853770027883465gmail_signature" data-smartmail="gmail_signature">Dave Menendez <<a href="mailto:dave@zednenem.com" target="_blank">dave@zednenem.com</a>><br><<a href="http://www.eyrie.org/~zednenem/" target="_blank">http://www.eyrie.org/~<wbr>zednenem/</a>></div>
</font></span></div></div>
</blockquote></div><br></div>