 (defconst fstar-syntax-structure
   (regexp-opt `("begin" "end" "in"
                 ,@fstar-syntax-structural-headers
-                ,@fstar-syntax-structural-qualifiers)
+                ,@fstar-syntax-qualifiers)
               'symbols))
 
 (defconst fstar-syntax-preprocessor

      (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))
      ("!"
       (0 'fstar-dereference-face))
      ("[{}]"
       (0 'fstar-braces-face append))
      (,fstar-syntax-id-with-subscript
       (1 '(face fstar-subscript-face display (raise -0.3)) append)))))

(defconst fstar--scratchpad-name " *%s-scratchpad*")

(defconst fstar-syntax-headers
  `(,@fstar-syntax-preprocessor-directives ,@fstar-syntax-structural-headers))

(defconst fstar-syntax-qualifiers
  '("new" "abstract" "logic" "assume" "visible"
    "unfold" "irreducible" "inline_for_extraction" "noeq" "noextract"
    "private" "opaque" "total" "default" "reifiable" "reflectable"))

(defconst fstar-syntax-block-header-re
  (format "^\\(?:%s \\)*%s "
          (regexp-opt fstar-syntax-qualifiers)
          (regexp-opt fstar-syntax-headers))
  "Regexp matching block headers.")

(defconst fstar-syntax-block-start-re
  (format "^\\(?:%s \\)*%s "
