<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">With the new custom require and provide forms, is there a plan in the works to merge provide and provide/contract?&nbsp;It'd be quite useful to be able to do this:<div><div><br></div><div><font class="Apple-style-span" face="Monaco">(define-struct person (name age))</font></div><div><font class="Apple-style-span" face="Monaco"><br></font></div><div><font class="Apple-style-span" face="Monaco">(define (create-person name)</font></div><div><font class="Apple-style-span" face="Monaco">&nbsp;&nbsp;(make-person name 0))</font></div><div><font class="Apple-style-span" face="Monaco"><br></font></div><div><font class="Apple-style-span" face="Monaco">(provide (except-out (contract-out struct person ([name string?] [age number?]))</font></div><div><font class="Apple-style-span" face="Monaco">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; make-person)</font></div><div><font class="Apple-style-span" face="Monaco">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (rename-out ((contract-out create-person (-> string? person?))</font></div><div><font class="Apple-style-span" face="Monaco">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;make-person)))</font></div><div><font class="Apple-style-span" face="Monaco"><br></font></div><div>I currently do this sort of thing with two modules: a private module defines and adds contracts to the structure type, while a public module does the renaming and hiding of the default constructor.</div><div><br></div><div>-- Dave</div></div></body></html>