Adding v4, seems to have potential for the uncontended case (correctness not 100% verified, it's 2am here)

<pre>
[info] Test group: LazyVals
[info] - LazyVals.non-lazy measurements:
[info]   - at size -&gt; 1000000, 1 alternatives: passed
[info]     (ci = &lt;3.21 ms, 3.42 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 2000000, 1 alternatives: passed
[info]     (ci = &lt;6.48 ms, 6.80 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 3000000, 1 alternatives: passed
[info]     (ci = &lt;9.61 ms, 10.50 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 4000000, 1 alternatives: passed
[info]     (ci = &lt;10.70 ms, 18.87 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 5000000, 1 alternatives: passed
[info]     (ci = &lt;16.22 ms, 17.26 ms&gt;, significance = 1.0E-10)
[info] - LazyVals.lazy-current measurements:
[info]   - at size -&gt; 1000000, 1 alternatives: passed
[info]     (ci = &lt;21.49 ms, 22.12 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 2000000, 1 alternatives: passed
[info]     (ci = &lt;42.91 ms, 46.14 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 3000000, 1 alternatives: passed
[info]     (ci = &lt;61.26 ms, 77.38 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 4000000, 1 alternatives: passed
[info]     (ci = &lt;84.54 ms, 101.50 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 5000000, 1 alternatives: passed
[info]     (ci = &lt;110.02 ms, 113.05 ms&gt;, significance = 1.0E-10)
[info] - LazyVals.lazy-simulation-v4 measurements:
[info]   - at size -&gt; 1000000, 1 alternatives: passed
[info]     (ci = &lt;25.50 ms, 26.18 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 2000000, 1 alternatives: passed
[info]     (ci = &lt;50.66 ms, 54.27 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 3000000, 1 alternatives: passed
[info]     (ci = &lt;77.23 ms, 81.57 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 4000000, 1 alternatives: passed
[info]     (ci = &lt;102.33 ms, 107.56 ms&gt;, significance = 1.0E-10)
[info]   - at size -&gt; 5000000, 1 alternatives: passed
[info]     (ci = &lt;131.24 ms, 144.31 ms&gt;, significance = 1.0E-10)
[info]
[info]  Summary: 1 tests passed, 0 tests failed.
</pre>