t 'case*) 'case*-labels))) ; these are the labels and their values
    (macro (arg)
      (cond ((null? arg) ())
	    ((match? arg '(+ #&lt;a:&gt; (+ #&lt;b:...&gt;))) `(+ ,(labels 'a) ,@(cadr (labels 'b))))
	    ((match? arg '(+ #&lt;&gt; #&lt;&gt;)) `(+ ,@(cdr arg)))
	    (else #f)))))

  ;; (match+ (+ 1 (+ 2 3))) -&gt; 6
</pre>

<p>See case.scm and s7test.scm for many more examples, including let and hash-table matching.
</p>


<div class="header" id="debug"><h4>debug.scm</h4></div>

<p>debug.scm has var