<div dir="ltr">+1. “<=” has the wrong strictness. In “a `implies` b”, “b” should not be evaluated if “a” is false.<div><br></div><div>As a strawman, I’d propose that the Ord instance for Bool be changed—but this is more likely to break existing code, however slightly.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 17, 2016 at 8:12 PM, David Feuer <span dir="ltr"><<a href="mailto:david.feuer@gmail.com" target="_blank">david.feuer@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">-1. We already have a `<=` operator.<br>
<div class="HOEnZb"><div class="h5"><br>
On Sun, Jan 17, 2016 at 9:17 PM, Niklas Hambüchen <<a href="mailto:mail@nh2.me">mail@nh2.me</a>> wrote:<br>
> I propose to add to Data.Bool:<br>
><br>
>     -- | Boolean implication.<br>
>     implies :: Bool -> Bool -> Bool<br>
>     implies True  x = x<br>
>     implies False _ = True<br>
><br>
>     infix 4 `implies` -- same as (==)<br>
><br>
> The request for this is quite old (see e.g.<br>
> <a href="http://neilmitchell.blogspot.de/2007/02/logical-implication-in-haskell.html" rel="noreferrer" target="_blank">http://neilmitchell.blogspot.de/2007/02/logical-implication-in-haskell.html</a>).<br>
><br>
> I believe that by not trying to use an operator for it, and keeping it<br>
> in Data.Bool, we can avoid doing anything wrong.<br>
><br>
> A quick superficial search on Stackage Hoogle suggests that adding this<br>
> function should create no breakage (4 packages define their own function<br>
> called `implies`, none of them import Data.Bool).<br>
><br>
> `infix` instead of `infixl` or `infixr` to force you to bracket it; for<br>
> the same reason it has the same precedence as `==`.<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>