 
   ;; Operators, regexes
   '(
+    ("TODO" . 'font-lock-warning-face)
     ("<:" . 'font-lock-variable-name-face)
     ("(.*)" . 'font-lock-variable-name-face)
     (":" . 'font-lock-variable-name-face)

  
  ;; Operators, regexes
  '(
    ("=" . 'font-lock-function-name-face)
    ("(" . 'font-lock-type-face)
    (")" . 'font-lock-type-face)
    ("{" . 'font-lock-type-face)
    ("}" . 'font-lock-type-face)
    ;; ("." . 'font-lock-operator)
    ("[0-9]+" . 'font-lock-variable-name-face)
    ;; Not sure how to combine these regexes
    ;; Also their relative orders seem to matter
    ("[A-Za-z_]+\\.[A-Za-z_]+\\.[A-Za-z_]+" . 'font-lock-constant-face)
    ("[A-Za-z_]+\\.[A-Za-z_]+" . 'font-lock-constant-face)
    )

  ;; File extensions that trigger the mode

    "Set" "Reals" "Real" "Point" "Function" "Interval" "OpenInterval" "ClosedInterval" "LeftClopenInterval" "RightClopenInterval" "CreateInterval" "CreateOpenInterval" "CreateClosedInterval" "CreateLeftClopenInterval" "CreateRightClopenInterval" "CreateFunction" "Pt" "union" "intersection" "derivativeAtP" "derivativeOverD" "integral" "apply" "compose" "Bounded" "LeftBounded" "RightBounded" "Unbounded" "Compact" "Disconnected" "Degenerate" "Empty" "Continuous" "Discontinuous" "Differentiable" "Integrable" "Invertible" "Monotonic" "Decreasing" "Increasing" "In" "In2" "Subset" "LessThan" "ClosedEnd" "OpenEnd" 

    ;; Style reserved words
    "with" "where" "LOCAL" "ensure" "encourage" "override" "delete" "OPTIMIZED" "List"

    ;; GPIs
    "Circle" "Square" "Brace" "Parallelogram" "Arrow" "AnchorPoint" "Ellipse" "Curve" "Line" "Rectangle" "Arc" "Image" "Text" "Bracket"

    ;; property names
    ;; TODO
