anchor.diff:  
   (defun begin-search
       (maximum-depth minimum-depth default-depth-increment !level! !continuation!)
  -  (stack-let ((*old-remaining-depths*
  -               (cons *remaining-depth* *old-remaining-depths*))
  -	      (*old-prev-depth-increments*
  -               (cons *prev-depth-increment* *old-prev-depth-increments*))
  -	      (*old-minus-next-depth-increments*
  -               (cons *minus-next-depth-increment* *old-minus-next-depth-increments*)))
  +  (let ((*old-remaining-depths*
  +          (cons *remaining-depth* *old-remaining-depths*))
  +        (*old-prev-depth-increments*
  +          (cons *prev-depth-increment* *old-prev-depth-increments*))
  +        (*old-minus-next-depth-increments*
  +          (cons *minus-next-depth-increment* *old-minus-next-depth-increments*)))
       (let (*remaining-depth*
             *prev-depth-increment*
             *minus-next-depth-increment*
  
positive.code: (defun wrap-bind-args (form)
    (if (and (or (not *allow-repeated-goals*) (not *incomplete-inference*))
             (> *arity* 1))
        `(stack-let ((!args! (list . ,(head-locs *arity*))))
  	 ,form)
        form))
  
  
negative.code: 		  (funcall !continuation! !level!)
  		  (undo-bindings)))
          ;; (new-variable '_)
  	(1 (let ((struct (list functor
                                 (new-variable 'z1 !level!))))	
  	     (progn (bind-variable-to-term term struct :trail)
  		    (funcall !continuation! !level!)
  		    (undo-bindings))))
  	(2 (let ((struct (list functor
                                 (new-variable 'z1 !level!)
                                 (new-variable 'z2 !level!))))
  	     (progn (bind-variable-to-term term struct :trail)
  		    (funcall !continuation! !level!)
  		    (undo-bindings))))
  	(3 (let ((struct (list functor
                                 (new-variable 'z1 !level!)
                                 (new-variable 'z2 !level!)
                                 (new-variable 'z3 !level!))))
  	     (progn (bind-variable-to-term term struct :trail)
  		    (funcall !continuation! !level!)
  		    (undo-bindings))))
  	(4 (let ((struct (list functor
                                 (new-variable 'z1 !level!)
                                 (new-variable 'z2 !level!)
                                 (new-variable 'z3 !level!)
                                 (new-variable 'z4 !level!))))
  	     (progn (bind-variable-to-term term struct :trail)
  		    (funcall !continuation! !level!)
  		    (undo-bindings))))
  	(5 (let ((struct (list functor
                                 (new-variable 'z1 !level!)
                                 (new-variable 'z2 !level!)
                                 (new-variable 'z3 !level!)
                                 (new-variable 'z4 !level!)
                                 (new-variable 'z5 !level!))))
  	     (progn (bind-variable-to-term term struct :trail)
  		    (funcall !continuation! !level!)
  		    (undo-bindings))))
  