anchor.diff:          (undo-bindings)))))
   
   (defun =/2 (x y !level! !continuation!
  -            &aux (!old-trail! *trail*) #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +            &aux (!old-trail! *trail*))
     (incf !level!)
     (when (always-trails-unify x y !old-trail!)
       (funcall !continuation! !level!)
       (undo-bindings)))
   
  -(defun \\=/2 (x y !level! !continuation!
  -              &aux (!old-trail! *trail*) #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun \\=/2 (x y !level! !continuation! &aux (!old-trail! *trail*))
     (incf !level!)
     (if (always-trails-unify x y !old-trail!)
         (undo-bindings)
         (funcall !continuation! !level!)))
   
  -(defun unsafe-=/2 (x y !level! !continuation!
  -                   &aux (!old-trail! *trail*) #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun unsafe-=/2 (x y !level! !continuation! &aux (!old-trail! *trail*))
     (incf !level!)
     (when (unsafe-always-trails-unify x y !old-trail!)
       (funcall !continuation! !level!)
       (undo-bindings)))
   
  -(defun unsafe-\\=/2 (x y !level! !continuation!
  -                     &aux (!old-trail! *trail*) #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun unsafe-\\=/2 (x y !level! !continuation! &aux (!old-trail! *trail*))
     (incf !level!)
     (if (unsafe-always-trails-unify x y !old-trail!)
         (undo-bindings)
         (funcall !continuation! !level!)))
   
  -(defun ==/2 (x y !level! !continuation!
  -             #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun ==/2 (x y !level! !continuation!)
     (incf !level!)
     (and (identical x y)
          (funcall !continuation! !level!)))
   
  -(defun \\==/2 (x y !level! !continuation!
  -               #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun \\==/2 (x y !level! !continuation!)
     (incf !level!)
     (and (not (identical x y))
          (funcall !continuation! !level!)))
   
  -(defun >/2 (x y !level! !continuation!
  -            #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun >/2 (x y !level! !continuation!)
     (incf !level!)
     (and (dereference x)
          (dereference y)
          (> x y)
          (funcall !continuation! !level!)))
   
  -(defun </2 (x y !level! !continuation!
  -            #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun </2 (x y !level! !continuation!)
     (incf !level!)
     (and (dereference x)
          (dereference y)
          (< x y)
          (funcall !continuation! !level!)))
   
  -(defun >=/2 (x y !level! !continuation!
  -             #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun >=/2 (x y !level! !continuation!)
     (incf !level!)
     (and (dereference x)
          (dereference y)
          (>= x y)
          (funcall !continuation! !level!)))
   
  -(defun =</2 (x y !level! !continuation!
  -             #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun =</2 (x y !level! !continuation!)
     (incf !level!)
     (and (dereference x)
          (dereference y)
  
positive.code: ;; printing due to bug in DBG:FRAME-LOCAL-VALUE that causes an error if named
  ;; variable isn't found
  
  (defun call/1 (x !level! !continuation!
                 #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(1 nil)))
    #+SYMBOLICS (declare (ignore !nsubgoals!))
    (incf !level!)
    (dereference x
      :if-variable (error "CALL was given non-compound argument ~A" x)
  
negative.code:              (wrap-pop-ancestor
                (wrap-exit-redo-trace
                 `(funcall !continuation! !level!))))))
      `(progn 
         ,(wrap-count-calls (wrap-push-ancestor (wrap-undo-bindings x))))))
  
  (defun compile-clause1 (headpats headlocs body vars unbound trail-is-nil)
    (cond ((null headpats)
  