Matthias,<br><br>In the style guide it suggests requires, auxiliary concepts related to the contracts,  provide/contract, and then the body of the module. One problem I have is that I often use structs to define new data types and use the resulting structure type predicate - &lt;type name&gt;? - in many contracts. This forces the provide/contract to be at (or near) the bottom of the module. So, I had just started putting it there all the time. [The provide/contract seems to require the &#39;auxiliary concepts&#39; to already be defined.]<br>
<br>Would it be better for me to define a &lt;type name&gt;/c flat-named contract for the struct and move it back to the top? I assume I can use a forward reference to a module variable - i.e., &lt;type name&gt;? - in the named-flat-contract.<br>
<br>Doug<br><br><div class="gmail_quote">On Wed, Sep 14, 2011 at 6:47 PM, Matthias Felleisen <span dir="ltr">&lt;<a href="mailto:matthias@ccs.neu.edu">matthias@ccs.neu.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
<br>
For the past few months, I have been writing a style guide for new Racket PLTers. The current draft is available at<br>
<br>
    <a href="http://www.ccs.neu.edu/home/matthias/Style/style/" target="_blank">http://www.ccs.neu.edu/home/matthias/Style/style/</a><br>
<br>
I had hoped to complete it a bit more and polish it a bit more, but this discussion suggests that people might be interested in reading it and commenting on it.<br>
<br>
-- Matthias<br>
<br>
<br>
_________________________________________________<br>
  For list-related administrative tasks:<br>
  <a href="http://lists.racket-lang.org/listinfo/users" target="_blank">http://lists.racket-lang.org/listinfo/users</a><br>
</blockquote></div><br>