`type 'context t`````

Names are organized by context. For instance contexts can be: expressions, patterns, types, ...

`val create : kind:Ppxlib__.Import.string ‑> current_file:Ppxlib__.Import.string ‑> string_of_context:('context ‑> Ppxlib__.Import.string Ppxlib__.Import.option) ‑> 'context t`

- `kind` is a description of the things registered. For instance: "extension", "attribute", ...

- `current_file` is where this function is called. Must be `__FILE__`.

- `string_of_context`: human readable description of a context

`val register : kind:[ `Attribute | `Extension ] ‑> 'context t ‑> 'context ‑> Ppxlib__.Import.string ‑> Ppxlib__.Import.unit`
`val spellcheck : 'context t ‑> 'context ‑> ?⁠white_list:Ppxlib__.Import.string Ppxlib__.Import.list ‑> Ppxlib__.Import.string ‑> Ppxlib__.Import.string Ppxlib__.Import.option`
`val raise_errorf : 'context t ‑> 'context ‑> ?⁠white_list:Ppxlib__.Import.string Ppxlib__.Import.list ‑> (Ppxlib__.Import.string ‑> 'a, Ppxlib__.Import.unit, Ppxlib__.Import.string, 'c) Ppxlib__.Import.format4 ‑> Ppxlib__.Import.string Ppxlib.Loc.t ‑> 'a`