<div>About a year ago, there was a discussion on the list about &quot;provide&quot; propagating existing contracts.<br></div><div>(See: <a href="http://www.mail-archive.com/users@racket-lang.org/msg08623.html">http://www.mail-archive.com/users@racket-lang.org/msg08623.html</a> )</div>
<div>suggested by Neil Toronto for this reason:</div><div><br></div><div>&quot;...define/contract has a huge advantage that contract-out doesn&#39;t have: it puts all the invariants at the function definition, right before the code that relies on them. &quot;</div>
<div><br></div><div>and with this suggested form:</div><div>----------</div><div>    (provide (contract-out real-id))<br>    ; ... more code ...<br>    (define/contract (real-id x) (real? . -&gt; . real?)<br>      x)<br><br>
Or (provide (lift-contract real-id)) might be even better.</div><div>------------</div><div><br></div><div>AFAICT the discussion seemed somewhat favorable to this.  What is the status of this?  Are there any plans to implement this (or something like this)?</div>
<div><br></div><div>Thanks,</div><div>Harry Spier</div>