<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I have a couple (of rather trivial) comments / suggestions /
requests (however anyone wants to interpret them) for contracts. In general,
these are nitpicks that I can (and do) implement on my own (except for #4). But
I think they might useful enough to include in the contracts module – or at
least it keeps me from including my own contracts-extension module.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>1) There are places in the language that require exact
integers (e.g., pretty much anyplace an index into something is needed). How
about exact counterparts to the contracts that match integers. For
example, (exact-integer-in 1 10) or exact-natural-number?. [Also add
exact-integer? as a counterpart to integer?.]<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>2) This is a total nitpick. I would have rather seen
natural-number? named natural? (or natural-integer?). I think the –number
appended makes it look to someone new to the language that it is higher in the
numeric hierarchy than it really is. Plus, the exact-natural-number? in #1
is getting a bit long.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>3) At first I thought that in addition to natural-number? it
would be nice to have something matching positive integers, etc. But I’ve
gotten so used to writing (integer-in 1 +inf.0) that it seems natural (no pun
intended). Indeed, maybe natural-number? is superfluous. Should we
just encourage this format?<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>4) This one may not be so trivial. Is there any way to
dynamically check a list that could potentially be used as a function call (or
alternatively, a function and list of arguments to be applied) against a
contract, prior to evaluation (or application) of the function? (I am
thinking a super-extension of procedure-arity-includes? that one could use to
check against a contract instead of just the arity of the procedure.)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Doug<o:p></o:p></span></font></p>
</div>
</body>
</html>