let is_keyword = function
  | "and" -> true
  | "as" -> true
  | "assert" -> true
  | "begin" -> true
  | "class" -> true
  | "constraint" -> true
  | "do" -> true
  | "done" -> true
  | "downto" -> true
  | "else" -> true
  | "end" -> true
  | "exception" -> true
  | "external" -> true
  | "false" -> true
  | "for" -> true
  | "fun" -> true
  | "function" -> true
  | "functor" -> true
  | "if" -> true
  | "in" -> true
  | "include" -> true
  | "inherit" -> true
  | "initializer" -> true
  | "lazy" -> true
  | "let" -> true
  | "match" -> true
  | "method" -> true
  | "module" -> true
  | "mutable" -> true
  | "new" -> true
  | "nonrec" -> true
  | "object" -> true
  | "of" -> true
  | "open" -> true
  | "or" -> true
  (* | "parser" -> true *)
  | "private" -> true
  | "rec" -> true
  | "sig" -> true
  | "struct" -> true
  | "then" -> true
  | "to" -> true
  | "true" -> true
  | "try" -> true
  | "type" -> true
  | "val" -> true
  | "virtual" -> true
  | "when" -> true
  | "while" -> true
  | "with" -> true
  | "lor" -> true
  | "lxor" -> true
  | "mod" -> true
  | "land" -> true
  | "lsl" -> true
  | "lsr" -> true
  | "asr" -> true
  | _ -> false
