anchor.diff:      result))
   
   (defun expand-clauses (all-clauses end-tag)
  -  `(let ((,*accumulation-variable*
  -	   ,(accumulation-initial-value all-clauses))
  -	 (,*list-tail-accumulation-variable* nil)
  -	 ,@(accumulation-bindings all-clauses))
  -     (declare (ignorable ,*list-tail-accumulation-variable*))
  -     ,(do-clauses all-clauses end-tag)))
  +  (let ((acc (accumulation-bindings all-clauses)))
  +    `(let (,@(if (member *accumulation-variable* acc :key #'car)
  +		 '()
  +		 `((,*accumulation-variable* nil)))
  +	   ,@acc)
  +       ,(do-clauses all-clauses end-tag))))
   
   (defun expand-body (loop-body end-tag)
     (if (every #'consp loop-body)
  
positive.code: 	 (equal-fun (lambda (d1 d2)
  		      (and (eq (first d1) (first d2))
  			   (eq (second d1) (second d2)))))
  	 (unique (remove-duplicates descriptors :test equal-fun))
  	 (no-nil (remove nil unique :test #'eq :key #'car)))
      (loop for (name category type) in no-nil
  	  for initial-value = (if (eq category 'count/sum)
  				  (coerce 0 type)
  				  nil)
  	  collect `(,name ,initial-value)
  	  when (eq category 'list)
  	    collect `(,(tail-variable name) ,nil))))
  
  (defvar *loop-name*)
  
  
negative.code:     (declare (ignore clause))
      nil))
  
  ;;; This variable is bound by the code generator for
  ;;; CONDITIONAL-CLAUSE before calling the code generators for the
  ;;; clauses in its THEN and ELSE branches.
  