anchor.diff:                          ;; inefficient
                           (append (cdr x) (list !level! !continuation!)))))
   
  -(defun not/1 (x !level! !continuation!
  -              #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun not/1 (x !level! !continuation!)
     (not-solvable x 1000000 !level! !continuation!))
   
  -(defun not/2 (x y !level! !continuation!
  -              #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun not/2 (x y !level! !continuation!)
     (not-solvable x y !level! !continuation!))
   
  -(defun y-or-n-p/0 (!level! !continuation!
  -                   #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun y-or-n-p/0 (!level! !continuation!)
     (incf !level!)
     (if (y-or-n-p)
         (funcall !continuation! !level!)
         nil))
   
  -(defun y-or-n-p/1 (x !level! !continuation!
  -                   #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun y-or-n-p/1 (x !level! !continuation!)
     (incf !level!)
     (fresh-line) (write-term x) (princ "? ")
     (if (y-or-n-p)
         (funcall !continuation! !level!)
         nil))
   
  -(defun atomic/1 (x !level! !continuation!
  -                 #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun atomic/1 (x !level! !continuation!)
     (incf !level!)
     (and (dereference x) (funcall !continuation! !level!)))
   
  -(defun atom/1 (x !level! !continuation!
  -               #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun atom/1 (x !level! !continuation!)
     (incf !level!)
     (and (dereference x) (symbolp x) (funcall !continuation! !level!)))
   
  -(defun integer/1 (x !level! !continuation!
  -                  #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun integer/1 (x !level! !continuation!)
     (incf !level!)
     (and (dereference x) (integerp x) (funcall !continuation! !level!)))
   
  -(defun var/1 (x !level! !continuation!
  -              #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (declare (ignore !nsubgoals!))
  +(defun var/1 (x !level! !continuation!)
     (incf !level!)
     (dereference x
       :if-constant  nil
       :if-variable  (funcall !continuation! !level!)
       :if-compound  nil))
   
  -(defun nonvar/1 (x !level! !continuation!
  -                 #+SYMBOLICS &aux #+SYMBOLICS (!nsubgoals! '(0 nil)))
  -  #+SYMBOLICS (DECLARE (IGNORE !NSUBGOALS!))
  +(defun nonvar/1 (x !level! !continuation!)
     (incf !level!)
     (dereference x
       :if-constant  (funcall !continuation! !level!)
  
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:            (begin-search
              !arg2! !arg2! nil !level!
              #'(lambda (lev)
                  (apply (car !arg1!)
                         (append (cdr !arg1!)	; inefficient
                                 (list lev
                                       #'(lambda (lev)
                                           (declare (ignore lev))
                                           (undo-bindings)
                                           (return-from not-solvable nil)))))))
  