Quiet NaNs (QNaNs) were introduced into the Floating Point Standard as a tool for applied numerical work. That's why there are so many of them (Float64s have nearly 2^52 of them, Float32s have nearly 2^23 and Float16s have nearly 2^10 QNaNs). AFAIK Julia and most other languages use one or two of each in most circumstances. Half of the QNaNs are in some sense positive and the other half negative (their sign bits can be queried, even though they are not magnitudes). While QNaNs are unordered by definition, they each have an embedded *payload:* an embedded integer value that exists to be set with information of reflective value. And then to carry it, propagating through the rest of the numerical work so it becomes available for use by the designer or investigator.
The QNaN module with introduction is here: QNaN.jl <https://github.com/J-Sarnoff/QNaN.jl>. It asks for v0.4-any; there is no clear reason not to run it under v0.3.10 -- I have not.