P.S. getNaNPayload takes `real`, not `double` and any floating numbers conversions may be destructive.