     "GLSL-SHADER:" "GLSL-PROGRAM:"
     "HINTS:"
     "initial:" "INTERSECTION:" "IMPLEMENT-STRUCTS:"
-    "M:" "M::" "MACRO:" "MACRO::" "MATH:"
-    "MEMO:" "MEMO:" "METHOD:" "MIXIN:"
-    "NAN:"
+    "MACRO:" "MACRO::" "MATH:"
+    "MEMO:" "MEMO:" "METHOD:"
     "PRIVATE>" "PROTOCOL:" "PROVIDE:"
     "read-only" "REQUIRE:"  "REQUIRES:"
-    "SINGLETON:" "SINGLETONS:" "SLOT:" "SPECIALIZED-ARRAY:"
+    "SINGLETONS:" "SLOT:"
     "SPECIALIZED-ARRAYS:" "STRING:" "SYNTAX:"
     "TYPED:" "TYPED::"
     "UNIFORM-TUPLE:"

(defconst factor-symbols-lines-regex
  (concat (syntax-begin '("SYMBOLS")) ws+ symbols-to-semicolon))

(defconst factor-int-constant-def-regex
  (syntax-and-1-symbol '("ALIEN" "CHAR" "NAN")))

(defconst factor-type-definition-regex
  (syntax-and-1-symbol
   '("C-STRUCT" "C-UNION" "COM-INTERFACE" "MIXIN" "SINGLETON"
     "SPECIALIZED-ARRAY" "STRUCT" "UNION-STRUCT")))

(defconst factor-constructor-regex
  "<[^ >]+>")

(defconst factor-getter-regex
  (one-symbol "\\(?:\\sw\\|\\s_\\)+>>"))

    ;; definition that is terminated with ";" is searched for words
    ;; that are slot names which are highlighted with the face
    ;; factor-font-lock-symbol.
    (,(format
       "\\(%s:\\)[ \n]+%s\\(?:[ \n]+\\(<\\)[ \n]+%s\\)?"
       (regexp-opt '("BUILTIN"
