anchor.diff:        (point-set point)
         (return nil))))
   
  -(macrolet ((def (name &body body)
  -                `(defun ,name (point dir)
  +(macrolet ((def (name args &body body)
  +                `(defun ,name (point dir ,@args)
                      (point-set point)
                      (if (do-scan outer
                                   dir
  
positive.code:                      (progn
                         (point-set point)
                         nil)))))
    (def scan-string
         (when (eq x 'string-quote)
           (return-from outer t)))
    (def scan-symbol
         (unless (or (eq x 'symbol)
                     (eq x 'expr-prefix))
           (return-from outer t))))
  
negative.code:             (ecase x
                ((open-paren closed-paren)
                 (unless in-string-p
                   (let ((at-char (sexp-at-char dir)))
                     (when (or (when (null paren-char)
                                 (setq paren-char at-char))
                               (char= paren-char at-char)
  