       (fstar-find-subtype-annotation
        ("{\\(\\(?:.\\|\n\\)+\\)}"
         (fstar-group-pre-matcher 2 5) nil
-        (1 'fstar-subtype-face append))
-       ;; ("\\({\\)\\(\\(?:.\\|\n\\)+\\)\\(}\\)"
-       ;; (fstar-group-pre-matcher 2 5) nil
-       ;; (1 'font-lock-type-face append)
-       ;; (2 'fstar-subtype-face append)
-       ;; (3 'font-lock-type-face append))
-       )
+        (1 'fstar-subtype-face append)))
       ("{:" (,(concat "\\({\\)\\(:" id "\\)\\(\\(?: +.+\\)?\\)\\(}\\)")
              (fstar-group-pre-matcher 2 2) nil
              (2 'font-lock-function-name-face append)

                      (1 'font-lock-variable-name-face)))
      (,(concat "\\_<\\(val\\) +\\(" id "\\) *:")
       (1 'fstar-structure-face)
       (2 'font-lock-function-name-face)
       ;; Type highlighting doesn't work too well
       ;; (,id nil nil (0 'font-lock-type-face))
       )
      ;; Constructors and module calls use the same syntax
      (,fstar-syntax-cs (0 'font-lock-constant-face))
      )))

;;; Syntax table


(defun fstar-find-id (bound)
  (fstar-find-id-maybe-type bound nil))

(defun fstar-find-fun-and-args (bound)
  (let ((found))
    (while (and (not found) (re-search-forward "\\_<fun\\_>" bound t))
