 
 (defconst fstar-syntax-structure
   (regexp-opt '("begin" "end"
-                "let" "rec" "in" "val"
+                "let" "rec" "in" "val" "and"
                 "kind" "type" "logic" "new" "abstract"
                 "unfold" "irreducible" "inline_for_extraction" "noeq" "noextract"
                 "private" "opaque" "total" "default" "reifiable" "reflectable"

              'symbols))

(defconst fstar-syntax-keywords
  (regexp-opt '("and"
                "forall" "exists"
                "assert" "assert_norm" "assume"
                "fun" "function"

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