<div dir="ltr">Do you have an example of a thing made possible by making them more strict? =)<div><br></div><div>-Edward</div><div><br></div><div><div>-Edward</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 16, 2015 at 9:10 AM, Erik Hesselink <span dir="ltr"><<a href="mailto:hesselink@gmail.com" target="_blank">hesselink@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Do you have an example of things made possible by the version returning True?<br>
<span class="HOEnZb"><font color="#888888"><br>
Erik<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Thu, Jul 16, 2015 at 2:29 PM, Edward Kmett <<a href="mailto:ekmett@gmail.com">ekmett@gmail.com</a>> wrote:<br>
> I'd caution against randomly changing Eq and Ord for Void to be less defined<br>
> in the ill-considered name of consistency.<br>
><br>
> We rather deliberately made them as "defined as possible" back in 2012 after<br>
> a very long discussion in which the pendulum swung the other way using a few<br>
> examples where folks tied knots with fixed points to get inhabitants of Void<br>
> and it was less consistent to rule them out than it was to define equality<br>
> on _|_ to be True.<br>
><br>
> I'd challenge that nothing is gained by making these combinators strict in<br>
> their arguments.<br>
><br>
> -Edward<br>
><br>
> On Thu, Jul 16, 2015 at 7:14 AM, Herbert Valerio Riedel <<a href="mailto:hvr@gnu.org">hvr@gnu.org</a>> wrote:<br>
>><br>
>> On 2015-07-16 at 05:28:03 +0200, David Feuer wrote:<br>
>> > It's all a bit weird. I think the Proxy instance is lazy too. I would<br>
>> > tend<br>
>> > to think that empty types shouldn't have these instances, and that if<br>
>> > they<br>
>> > do that should be strict (empty case), but I can't prove that's the<br>
>> > right<br>
>> > way.<br>
>><br>
>> Btw, something similiar came up for deepseq, regarding NFData instances<br>
>> for types only inhabited by ⊥ (and the issue of H2010 forbidding<br>
>> instance auto-derivation for constructor-less types was mentioned too):<br>
>><br>
>> <a href="https://github.com/haskell/deepseq/pull/1#issuecomment-61914093" rel="noreferrer" target="_blank">https://github.com/haskell/deepseq/pull/1#issuecomment-61914093</a><br>
>><br>
>> -- hvr<br>
><br>
><br>
><br>
</div></div><div class="HOEnZb"><div class="h5">> _______________________________________________<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>
</div></div></blockquote></div><br></div>