When you use mutable data structures, you live with the choice. For the statistics routines, I use exact-&gt;inexact inside the loop at the point where I use the value, so I&#39;m not worried about it. Off the top of my head, the only problem I see is that exact-&gt;inexact also works on complex numbers, so I may still not have a simple float. I assume +inf.0, -inf.0, and +nan.0 (and, therefore, -nan.0) also pass through exact-&gt;inexact. I further assume those are stored as floats (in an IEEE format) and work as expected - at least they seem to in the REPL. Is that a correct assumption? Are there other cases where exact-&gt;inexact does not give me a float? [I need to decide on a case by case basis what to do about complex numbers.]<br>
<br><div class="gmail_quote">On Sun, Oct 4, 2009 at 12:53 PM, Matthew Flatt <span dir="ltr">&lt;<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">At Sat, 3 Oct 2009 08:34:03 -0600, Matthew Flatt wrote:<br>
&gt; (while the contract on the &quot;checked&quot; version ensures that the unsafe<br>
&gt; operations will not cause a crash).<br>
<br>
</div>Not true. Sam points out that a vector (or other sequence) can be<br>
mutable, so checking elements at the beginning does not make `variance&#39;<br>
safe if it uses unsafe operations on the elements internally.<br>
<br>
<br>
</blockquote></div><br>