`type keyword````=`

`|` `Doc_url`
`|` `Message`
`|` `Mode`
`|` `Name`
`|` `Report_when`
`|` `Severity`
`|` `Suggestion`

``
`type formula_id````=`

`|` `Formula_id of string`

``
`include sig ... end`
`val compare_formula_id : formula_id ‑> formula_id ‑> int`
`type cached_regexp````=` `{`

`string : string;`
`regexp : Str.regexp InferStdlib.IStd.Lazy.t;`

`}```

a regexp and its cached compiled version

`include sig ... end`
`val compare_cached_regexp : cached_regexp ‑> cached_regexp ‑> int`
`type alexp````=`

`|` `Const of string`
`|` `Regexp of cached_regexp`
`|` `Var of string`
`|` `FId of formula_id`

``
`include sig ... end`
`val compare_alexp : alexp ‑> alexp ‑> int`
`type t``= alexp```
`val equal : t ‑> t ‑> bool`
`val formula_id_to_string : formula_id ‑> string`
`val alexp_to_string : t ‑> string`
`val keyword_to_string : keyword ‑> string`
`val is_report_when_keyword : keyword ‑> bool`
`val is_message_keyword : keyword ‑> bool`
`val is_suggestion_keyword : keyword ‑> bool`
`val is_severity_keyword : keyword ‑> bool`
`val is_mode_keyword : keyword ‑> bool`
`val is_doc_url_keyword : keyword ‑> bool`
`val is_name_keyword : keyword ‑> bool`
`val str_match_forward : string ‑> Str.regexp ‑> bool`
`val compare_str_with_alexp : string ‑> alexp ‑> bool`
`module FormulaIdMap : InferStdlib.IStd.Caml.Map.S with type FormulaIdMap.key = formula_id`
`module VarMap : InferStdlib.IStd.Caml.Map.S with type VarMap.key = string`