 
 (defconst factor-predicate-regex
   (concat (syntax-begin '("PREDICATE")) ws+ symbol ws+ "\\(<\\)" ws+ symbol))
+
+(defconst factor-alien-function-regex
+  (concat (syntax-begin '("GL-FUNCTION" "FUNCTION" "GL-CALLBACK" "CALLBACK"))
+          ws+ symbol
+          ws+ symbol ws+))
+
+(defconst factor-function-alias-regex
+  (concat (syntax-begin '("FUNCTION-ALIAS"))
+          ws+ symbol
+          ws+ symbol
+          ws+ symbol ws+))
 
 (defconst factor-group-name-to-face
   #s(hash-table test equal data

    ,(factor-syntax factor-predicate-regex '("P" "T" "P" "T"))
    ;; Highlights alien function definitions. Types in stack effect
    ;; declarations are given a bold face.
    (,(format "\\(\\(?:GL-\\)?FUNCTION\\|CALLBACK\\):[ \n]+%s[ \n]+%s[ \n]+" symbol symbol)
     (1 'factor-font-lock-parsing-word)
     (2 'factor-font-lock-type-name)
     (3 'factor-font-lock-word)

    "FROM" "FUNCTION:" "FUNCTION-ALIAS:"
    "INTERSECTION:"
    "M" "M:" "MACRO" "MACRO:"
    "MAIN-WINDOW:" "MEMO" "MEMO:" "METHOD"
    "SYNTAX"
    "PREDICATE" "PRIMITIVE" "PROTOCOL"
    "SINGLETONS"
