title: Node.js - module caching, partially done objects, and cyclical dependencies?
body: <p>In the <a href="http://nodejs.org/docs/v0.4.8/api/modules.html#caching" rel="nofollow">node.js documentation regarding module caching</a>, the following statement is made:</p>
  
  <blockquote>
    <p>Multiple calls to require('foo') may not cause the module code to be executed multiple times. This is an important feature. With it, "<em>partially done</em>" objects can be returned, thus allowing transitive dependencies to be loaded even when they would cause cycles.</p>
  </blockquote>
  
  <p>I'm a bit confused about the last sentence.  What is a "partially done" object?  How does this relate to allowing (or avoiding) cyclical dependencies?</p>