 terms of these,
abstracting common patterns of use.
</p>

<p>
One such pattern consists in binding an identifier to each of the values of
a multiple-valued expression and then evaluating an expression in the scope
of the bindings.  As an instance of this pattern, consider the following
excerpt from a quicksort procedure:
</p>

<pre>
<code>
(call-with-values
  (lambda ()
    (partition (precedes pivot) others))
  (lambda (fore aft)
    (append (qsort fore) (cons pivot (qsort aft)))))
</code>
</pre>

<p>
Her