<div class="gmail_extra">On Tue, Dec 4, 2012 at 7:49 PM, Robby Findler <span dir="ltr">&lt;<a href="mailto:robby@eecs.northwestern.edu" target="_blank">robby@eecs.northwestern.edu</a>&gt;</span> wrote:<br><div class="gmail_quote">

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Flat contracts includes more things than contracts. For example:</div><div><br></div><div><div>[robby@yanpu] ~/git/plt/collects/scribblings/reference$ racket</div>

<div>Welcome to Racket v5.3.1.9.</div><div>&gt; (flat-contract? &#39;x)</div>
<div>#t</div><div>&gt; (procedure? &#39;x)</div><div>#f</div><div><br></div><div>The flat-contract function is a holdover from the days when flat contracts weren&#39;t able to be used directly as predicate functions.</div>

</div></blockquote><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
<div><br></div><div>I&#39;ll push a clarification to the docs for flat-contract.</div></div></blockquote><div><br>Isn&#39;t that the wrong way around?  The flat-contract function lets you use a predicate as a contract, not a contract as a predicate.  Presumably it&#39;s from before predicates could be used as contracts, although I hadn&#39;t realized there was such a time.<br>

<br>--Carl<br></div></div></div>