I assume the code generated to check the (integer-in 1 10) contract is similar to what would be used for (and/c integer? exact? (>=/c 1) (<=/c 10)).  In which case the integerness and exactness of the arguments 1 and 10 aren't important, just their real values.  Should the exact integer constraint on integer-in parameters be that strict?
<br>Also, even if the exact integer constraint is deemed correct, would the use of -inf.0 (as the first argument) or +inf.0 (as the second argument) allow an efficient short cutting of the lower or upper bounds?&nbsp; I.e. (integer-in 1 +inf.0) would generate equivalent code to (and/c integer? exact? (&gt;=/c 1)) but would not generate the upper limit test (&lt;=/c +inf.0).
<br>Just some thoughts.<br>Doug<br><br><div><span class="gmail_quote">On 8/14/07, <b class="gmail_sendername">Robby Findler</b> &lt;<a href="mailto:robby@cs.uchicago.edu">robby@cs.uchicago.edu</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I&#39;ve fixed the docs -- thanks for pointing that out!<br><br>As far as the contract below goes, I&#39;d guess I&#39;d write:<br><br>&nbsp;&nbsp;(and/c integer? (&gt;=/c 1))<br><br>to match the old behavior or:<br><br>&nbsp;&nbsp;(and/c integer? exact? (&gt;=/c 1))
<br><br>if you wanted exact integers.<br><br>Robby<br><br>On 8/14/07, Doug Williams &lt;<a href="mailto:m.douglas.williams@gmail.com">m.douglas.williams@gmail.com</a>&gt; wrote:<br>&gt; I am testing my collections on the new V371 release candidate and
<br>&gt; encountered what appears to be a change in the integer-in contract.&nbsp;&nbsp;I have<br>&gt; often used (integer-in 1 +inf.0) as a contract for a positive integer.&nbsp;&nbsp;With<br>&gt; V371 this now gives an error &quot;integer-in: expected two exact integers as
<br>&gt; arguments, got 1 and +inf.0)&quot;.&nbsp;&nbsp;I can understand the change, but I also like<br>&gt; the convenience of using infinities as arguments here.&nbsp;&nbsp;Would it possible to<br>&gt; change integer-in so that it allows - 
inf.0 as the first argument and +inf.0<br>&gt; as the second?&nbsp;&nbsp;Or add a positive-integer/c contract that is similar to<br>&gt; natural-number/c?<br>&gt; I assume the best alternative now is to use (and/c natural-number/c (&lt;/c
<br>&gt; 0)), but I really think (integer-in 1 +inf.0) matches the abstraction<br>&gt; better.<br>&gt; Is there a standard way that others use to denote a contract for a positive<br>&gt; integer?<br>&gt; By the way, the documentation still says integer-in takes two numbers as
<br>&gt; arguments and should probably be updated to say two integers.&nbsp;&nbsp;There might<br>&gt; be a similar problem with the documentation for real-in that should limit it<br>&gt; to real numbers.&nbsp;&nbsp;I guess those are kind of nits.
<br>&gt; Doug<br>&gt;<br>&gt; _________________________________________________<br>&gt;&nbsp;&nbsp; For list-related administrative tasks:<br>&gt;&nbsp;&nbsp; <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme">http://list.cs.brown.edu/mailman/listinfo/plt-scheme
</a><br>&gt;<br>&gt;<br></blockquote></div><br>