 
 (defsubst factor-beginning-of-sexp-pos ()
   (save-excursion (factor-beginning-of-sexp) (point)))
-
-(defun factor-find-end-of-def (&rest foo)
-  (save-excursion
-    (re-search-forward " ;" nil t)
-    (1- (point))))
 
  

    (re-search-forward factor-end-of-def-regex nil t)
    (point)))

(defun factor-beginning-of-body ()
  (let ((p (point)))
    (and (factor-beginning-of-defun)

     ;; Regexp from hell that puts every type name in the first group,
     ;; names and brackets in the second and third.
     ("\\(?:\\(\\(?:\\sw\\|\\s_\\)+\\)[ \n]+\\(\\(?:\\sw\\|\\s_\\)+,?\\(?:[ \n]+)\\)?\\)\\|\\([()]\\)\\)"
      (factor-find-ending-bracket)
      nil
      (1 'factor-font-lock-type-in-stack-effect nil t)
      (2 'factor-font-lock-stack-effect nil t)
