<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 "illegal" instances. There is no sound and COMPLETE way to enforce having "good" 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"><<a href="mailto:mwm@mired.org" target="_blank">mwm@mired.org</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"><div class="im"><div>On Wed, Oct 2, 2013 at 5:18 AM, Tom Ellis <<a href="mailto:tom-lists-haskell-cafe-2013@jaguarpaw.co.uk" target="_blank">tom-lists-haskell-cafe-2013@jaguarpaw.co.uk</a>> wrote:</div>
<div>> Are there examples where application programmers would like there so be some</div>
<div>> f, a and b such that a == b but f a /= f b (efficiency concerns aside)? I</div><div>> can'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> let f = (1.0 /)</div><div>Prelude> let (z, negz) = (0.0, -0.0)</div><div>Prelude> z == negz</div><div>True</div><div>Prelude> f z /= f negz</div><div>True</div><div><br></div><div>This is *not* an "IEEE Floats are weird" 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 "IEEE Floats are weird" things there are,</div><div>you can reasonably consider ignoring this example.</div>
<span class="HOEnZb"><font color="#888888">
<div><br></div><div> <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>