           (while (> level 0)
             (if (re-search-forward "\\(<\\|>\\)" bound t)
                 (if (string= (match-string 1) "<")
-                    (setq level (+ level 1))
-                  (setq level (- level 1)))
+                    (incf level)
+                  (decf level))
               (setq level 0))))
         (forward-line))
       (when (re-search-forward "^\\(class\\|struct\\) " (point-at-eol) t)

              (cond ((and (eq level 0) (match-string 2 arglist))
                     (throw 'end-arg-pos pos))
                    ((match-string 3 arglist)
                     (setq level (+ level 1)))
                    ((match-string 4 arglist)
                     (setq level (- level 1))))
              (setq pos (match-end 0)))
          (throw 'end-arg-pos to))))))


                                            "\\((\\)\\)")    ;; 4: (
                                    bound t)
            (cond ((match-string 2)
                   (incf level))
                  ((match-string 3)
                   (decf level))
                  ((and (eq level 0) (match-string 4))
                   (throw 'pos (- (point) 1))))))))))

