<div>If I use raise-argument-error in my functions, like this:</div><div><br></div><div>(define (integer-&gt;roman n)</div><div>  (cond ((not (integer? n))</div><div>         (raise-argument-error &#39;integer-&gt;roman &quot;integer?&quot; n))</div>
<div>        ((positive? n)</div><div>         (apply string-append (positive-integer-&gt;roman n)))</div><div>        ((negative? n)</div><div>         (apply string-append &quot;NEGATIVVS &quot; (positive-integer-&gt;roman (- n))))</div>
<div>        (else</div><div>         &quot;NVLLA&quot;)))</div><div><br></div><div>I get errors like this:</div><div><br></div><div><div>Welcome to DrRacket, version 5.3.2.2--2013-01-26(88404f3/a) [3m].</div><div>Language: racket [custom].</div>
<div>&gt; (integer-&gt;roman 3.3)</div><div>integer-&gt;roman: contract violation</div><div>  expected: integer?</div><div>  given: 3.3</div><div>&gt; (integer-&gt;roman 3.3)</div><div>. . C:\Program Files\Racket-Full-5.3.2.2\collects\racket\private\more-scheme.rkt:263:2: integer-&gt;roman: contract violation</div>
<div>  expected: integer?</div><div>  given: 3.3</div></div><div><br></div><div>That is, from the second time on I get the extraneous prefix.  Is this expected?</div><div><br></div><div>P.</div><div><br></div>