<div>About a year ago, there was a discussion on the list about "provide" 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>"...define/contract has a huge advantage that contract-out doesn't have: it puts all the invariants at the function definition, right before the code that relies on them. "</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? . -> . 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>