I have a question about numeric comparisons (inequality operators) in contracts.I'm not sure if it's a documentation bug or an implementation bug, but </c specifies a real? argument, while >/c, <=/c, and >=/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? (<=/c 0.0)), for example, to guard the <=/c contract. It seems that the inequality operators should require (and enforce) a real number as its argument.<br>
<br>Doug<br>