`type linter````=` `{`

`condition : InferModules.CTL.t;`
`issue_desc : InferModules.CIssue.issue_desc;`
`def_file : string option;`
`whitelist_paths : InferModules.ALVar.t list;`
`blacklist_paths : InferModules.ALVar.t list;`

`}```
`val filter_parsed_linters : linter list ‑> InferBase.SourceFile.t ‑> linter list`
`val pp_linters : Format.formatter ‑> linter list ‑> unit`
`type macros_map``= (bool * InferModules.ALVar.t list * InferModules.CTL.t) InferModules.ALVar.FormulaIdMap.t```
`type paths_map``= InferModules.ALVar.t list InferModules.ALVar.VarMap.t```
`val parsed_linters : linter list InferStdlib.IStd.ref`
`val invoke_set_of_checkers_on_node : InferModules.CLintersContext.context ‑> InferModules.Ctl_parser_types.ast_node ‑> unit`
`val build_macros_map : InferModules.CTL.clause list ‑> macros_map`
`val build_paths_map : (string * InferModules.ALVar.alexp list) list ‑> paths_map`
`val expand_checkers : macros_map ‑> paths_map ‑> InferModules.CTL.ctl_checker list ‑> InferModules.CTL.ctl_checker list`
`val create_parsed_linters : string ‑> InferModules.CTL.ctl_checker list ‑> linter list`
`val remove_new_lines_and_whitespace : string ‑> string`
`val fill_issue_desc_info_and_log : InferModules.CLintersContext.context ‑> InferModules.Ctl_parser_types.ast_node ‑> InferModules.CIssue.issue_desc ‑> string option ‑> InferBase.Location.t ‑> unit`