I have a question about numeric comparisons (inequality operators) in contracts.I&#39;m not sure if it&#39;s a documentation bug or an implementation bug, but &lt;/c specifies a real? argument, while &gt;/c, &lt;=/c, and &gt;=/c (and between/c and possibly others) specifies a number? argument. Unfortunately, they actually error (as opposed to giving a contract violation) when given a complex number. [The actual inequality operators require real numbers.] So, you actually need to write (and/c real? (&lt;=/c 0.0)), for example, to guard the &lt;=/c contract. It seems that the inequality operators should require (and enforce) a real number as its argument.<br>
<br>Doug<br>