Results 238 comments of Aleksey Khudyakov

> because for all the existing unbox instances WHNF == NF But that's only true for primitive types, not for tuples and records with lazy fields which use standard instances.

What I meant storing say tuple `(Double,Int)` will evaluate it to NF not just to WHNF. So would work `data Foo = Foo Double Int` if uses same representation as...

Let then go with "allow user to decide" approach and provide all three variants of wrappers. And I agree we do need beter documentation explaining what unboxed vectors are and...

We have solution for problem with loss of precision above. But we still another numeric problem: `uniformRM` may go out of range for floats. Here is possible solution. Idea is...

> I do not think that the linked paper is applicable here (or it does not make sense to apply it) because the scaling from [0, 1] to [l, h]...

So we have two algorithms each with its own problem: 1. `x * l + (1 - x) * h` does not overflow but has loses randomness for `l

Yes. Although I'm not sure that trick with `testBit` will buy us anything in `isInfinite diff==True`. We still need to calculate `1-x` which will lose precision. But it's not harmful...