<code>cons-stream</code> procedure must not evaluate its second argument until it is accessed by <code>stream-cdr</code>.</li>
<li>To implement streams, we will use <em>promises</em>. <code>(<span class="kw">delay</span> <span class="mv">exp</span>)</code> does not evaluate the argument but returns a promise. <code>(<span class="fu">force</span> <span class="mv">promise</span>)</code> evaluates a promise and returns the value.</li>
<li><code>(<span class="kw">cons-stream</span> a b)</code> is a special form