<div dir="ltr">So i think we can conclude the following<div><br></div><div style>1) things are not perfect currently. But it requires some huge type class changes to have a better story</div><div style><br></div><div style>

2) certain types of data types will need to be newtyped to have instances that play nice with Ryans concurrency work. Thats ok. Theres often good reasons for those &quot;illegal&quot; instances. There is no sound and COMPLETE way to enforce having &quot;good&quot; instances, and thats a good thing, though having more libs work correctly is always a good thing</div>

<div style><br></div><div style>3) as always, people complain about floats, when the real issue is the current numerical type classes, which are wrong in a number of ways. I hope to experiment with my own ideas in that direction soon. Not worth a boring no ideas worth taking seriously cafe thread</div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Oct 2, 2013 at 2:39 PM, Mike Meyer <span dir="ltr">&lt;<a href="mailto:mwm@mired.org" target="_blank">mwm@mired.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div class="im"><div>On Wed, Oct 2, 2013 at 5:18 AM, Tom Ellis &lt;<a href="mailto:tom-lists-haskell-cafe-2013@jaguarpaw.co.uk" target="_blank">tom-lists-haskell-cafe-2013@jaguarpaw.co.uk</a>&gt; wrote:</div>

<div>&gt; Are there examples where application programmers would like there so be some</div>
<div>&gt; f, a and b such that a == b but f a /= f b (efficiency concerns aside)?  I</div><div>&gt; can&#39;t think of any obvious ones.</div><div><br></div></div><div>Yes, and we already handle it properly:</div><div><br>

</div>
<div>Prelude&gt; let f = (1.0 /)</div><div>Prelude&gt; let (z, negz) = (0.0, -0.0)</div><div>Prelude&gt; z == negz</div><div>True</div><div>Prelude&gt; f z /= f negz</div><div>True</div><div><br></div><div>This is *not* an &quot;IEEE Floats are weird&quot; thing. Application</div>


<div>programmers want 0.0 to equal -0.0, but -Infinity to not be equal to</div><div>Infinity.</div><div><br></div><div>Of course, given how many &quot;IEEE Floats are weird&quot; things there are,</div><div>you can reasonably consider ignoring this example.</div>

<span class="HOEnZb"><font color="#888888">
<div><br></div><div>   &lt;mike</div><div><br></div></font></span></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br></div>