
7 Feb
2019
7 Feb
'19
11:22 a.m.
On Thu, 7 Feb 2019, Merijn Verstraaten wrote:
I think the default behaviour for Float/Double should use a trapping NaN. The current value NaN is as if every Double value has an implicit "fromJust"
I like to think of it like all operations are lifted to (Maybe Float).
Trapping NaN would also eliminate the brokenness of Ord. If some people are really attached to value NaNs (why?!? What's wrong with you?) we could allow disabling trapping at compile or runtime so they get the old behaviour.
What about calling into foreign code? If I call a BLAS routine and one element of the result vector is NaN, shall this be trapped? Or shall it be trapped once I access the NaN element?