<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. &nbsp;In general,
these are nitpicks that I can (and do) implement on my own (except for #4). &nbsp;But
I think they might useful enough to include in the contracts module &#8211; 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>&nbsp;</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). &nbsp;How
about exact counterparts to the contracts that match integers.&nbsp; For
example, (exact-integer-in 1 10) or exact-natural-number?.&nbsp; [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>&nbsp;</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.&nbsp; I would have rather seen
natural-number? named natural? (or natural-integer?). &nbsp;I think the &#8211;number
appended makes it look to someone new to the language that it is higher in the
numeric hierarchy than it really is.&nbsp; 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>&nbsp;</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. &nbsp;But I&#8217;ve
gotten so used to writing (integer-in 1 +inf.0) that it seems natural (no pun
intended).&nbsp; Indeed, maybe natural-number? is superfluous.&nbsp; 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>&nbsp;</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. &nbsp;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?&nbsp; (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>&nbsp;</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>