      (1 dune-error-face)
      (2 font-lock-builtin-face)
      (4 font-lock-variable-name-face)
-     (5 font-lock-variable-name-face))
-    ("\\(:[a-zA-Z]+\\)\\b" 1 font-lock-builtin-face)))
+     (5 font-lock-variable-name-face))))
 
 (defvar dune-mode-syntax-table
   (let ((table (make-syntax-table)))

  `(list (concat "(" ,field "[[:space:]]+" ,(regexp-opt vals t))
         1 font-lock-constant-face))

(setq dune-font-lock-keywords
  `((,dune-keywords-regex . font-lock-keyword-face)
    (,(concat "(" dune-fields-regex) 1 font-lock-function-name-face)
    ("\\(true\\|false\\)" 1 font-lock-constant-face)
    ("(\\(select\\)[[:space:]]+[^[:space:]]+[[:space:]]+\\(from\\)\\>"

(defvar dune-error-face 'dune-error-face
  "Face for errors (e.g. obsolete constructs).")

(defconst dune-stanzas-regex
  (eval-when-compile
    (concat (regexp-opt
             '("library" "executable" "executables" "rule"
               "ocamllex" "ocamlyacc" "menhir" "alias" "install"
               "copy_files" "copy_files#" "include" "tests" "test"
               "env" "ignored_subdirs" "include_subdirs")
             ) "\\(?:\\_>\\|[[:space:]]\\)"))
  "Stanzas in dune files.")

(defconst dune-fields-regex
  (eval-when-compile
