anchor.diff:        (next-char 1)
         (setq c (following-char)))
       (cond
  -     ((syntax-open-paren-char-p c)
  +     ((start-sexp-p c)
         (forward-list-1))
        ((syntax-closed-paren-char-p c)
         nil)
  
positive.code: 
  (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))))
  
  (define-dir-functions (skip-chars-forward skip-chars-backward)
    (pred &optional not-p)
  
negative.code:           (syntax-word-char-p c)))
          (return t))))))
  
  (defun start-sexp-p (c)
    (or (syntax-open-paren-char-p c)
        (and (syntax-expr-prefix-char-p c)
             (syntax-open-paren-char-p (char-after 1)))
        (and (syntax-expr-prefix-char-p c)
             (syntax-expr-prefix-char-p (char-after 1))
             (syntax-open-paren-char-p (char-after 2)))))
  
  (define-dir-functions (%forward-sexp %backward-sexp) ()
    ((skip-space-forward skip-space-backward)
     (start-sexp-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)
  