        (1 'fstar-structure-face)
        (2 'font-lock-function-name-face))
       (fstar-find-id-with-type
-       (1 'font-lock-variable-name-face))
+       (1 'font-lock-variable-name-face append))
       (fstar-find-subtype-annotation
        (0 'fstar-subtype-face append))
       ("%\\[\\([^]]+\\)\\]"
        (1 'fstar-decreases-face append))
-      ("\\_<\\(forall\\|exists\\) [^.]+\."
-       (0 'font-lock-keyword-face)
-       (fstar-find-id (fstar-subexpr-pre-matcher 1) nil (1 'font-lock-variable-name-face)))
-      (fstar-find-fun-and-args
+      (fstar--find-quantifier-and-args
        (1 'font-lock-keyword-face)
-       (fstar-find-id (fstar-subexpr-pre-matcher 1) nil (1 'font-lock-variable-name-face)))
+       (fstar--find-formal (fstar-subexpr-pre-matcher 1) nil (1 'font-lock-variable-name-face append)))
+      (fstar--find-fun-and-args
+       (1 'font-lock-keyword-face)
+       (fstar--find-formal (fstar-subexpr-pre-matcher 1) nil (1 'font-lock-variable-name-face append)))
       (,fstar-syntax-ambiguous
        (0 'fstar-ambiguous-face append))
       ("!"

                                    (save-excursion
                                      (goto-char (match-beginning 0))
                                      (skip-syntax-backward "-")
                                      (or (eq (char-before) ?|) ;; | X: int
                                          (save-match-data
                                            ;; val x : Y:int
                                            (re-search-forward "\\_<\\(val\\|let\\|type\\)\\_>"

       (0 'font-lock-type-face))
      (,fstar-syntax-universe
       (1 'fstar-universe-face))
      ("`.+?`"
       (0 'fstar-operator-face append))
      (,(concat "{\\(:" id "\\) *\\([^}]*\\)}")
       (1 'font-lock-builtin-face append)
       (2 'fstar-attribute-face append))
      (,(concat "\\_<\\(let\\(?: +rec\\)?\\|and\\)\\_>\\(\\(?: +" id "\\( *, *" id "\\)*\\)?\\)")
       (1 'fstar-structure-face)
       (2 'font-lock-function-name-face))
      (,(concat "\\_<\\(type\\|kind\\)\\( +" id "\\)")
