anchor.diff:  
   (defmacro define-dir-functions ((forward-name backward-name) parms aliases &body body)
     `(progn
  -    (defun ,forward-name ,parms ,@body)
  -    (flet-aliases ,aliases
  -      (defun ,backward-name ,parms ,@body))))
  +    (flet ((forward-p () t)
  +           (backward-p () nil))
  +      (defun ,forward-name ,parms ,@body))
  +    (flet ((forward-p () nil)
  +           (backward-p () t))
  +      (flet-aliases ,aliases
  +        (defun ,backward-name ,parms ,@body)))))
   
   (define-dir-functions (skip-chars-forward skip-chars-backward)
     (pred &optional not-p)
  
positive.code:           (syntax-word-char-p c)))
          (return t))))))
  
  (define-dir-functions (%forward-sexp %backward-sexp) ()
    ((skip-space-forward skip-space-backward)
     (syntax-open-paren-char-p syntax-closed-paren-char-p)
     (syntax-closed-paren-char-p syntax-open-paren-char-p)
     (following-char preceding-char)
     (preceding-char char-before-2)
  
negative.code:       (next-char 1)
        (setq c (following-char)))
      (cond
       ((start-sexp-p c)
        (forward-list-1))
       ((syntax-closed-paren-char-p c)
        nil)
  