`type (_, _) equality````=`

`|` `Eq : ('a, 'a) equality`
`|` `Ne : (_, _) equality`

``
`module Context : sig ... end`
`type t`````

Type of declared extensions.

`val declare : Ppxlib__.Import.string ‑> 'context Context.t ‑> (Ppxlib__.Import.payload, 'a, 'context) Ppxlib.Ast_pattern.t ‑> (loc:Ppxlib.Location.t ‑> path:Ppxlib__.Import.string ‑> 'a) ‑> t`

`declare name context pattern expander` declares the extension names `name` for `context`.

`expander` is responsible for producing the code to replace the extension in the AST. It receives as argument:

- `loc`: the location of the enclosing node. For instance for expression it is the `pexp_loc` field
- `path`: the current module path

`val declare_with_path_arg : Ppxlib__.Import.string ‑> 'context Context.t ‑> (Ppxlib__.Import.payload, 'a, 'context) Ppxlib.Ast_pattern.t ‑> (loc:Ppxlib.Location.t ‑> path:Ppxlib__.Import.string ‑> arg:Ppxlib.Longident.t Ppxlib__.Import.Asttypes.loc Ppxlib__.Import.option ‑> 'a) ‑> t`

Same as `declare` except that the extension name takes an additional path argument. The path is the part of the name that start with a capitalized component. For instance in the following, the extension `"map"` would receive the path argument `Foo.Bar`:

          let%map.Foo.Bar x = 1 in
          ...

`val declare_inline : Ppxlib__.Import.string ‑> 'context Context.t ‑> (Ppxlib__.Import.payload, 'a, 'context Ppxlib__.Import.list) Ppxlib.Ast_pattern.t ‑> (loc:Ppxlib.Location.t ‑> path:Ppxlib__.Import.string ‑> 'a) ‑> t`

Inline the result of the expansion into its parent. Only works for these contexts:

- `class_field`
- `class_type_field`
- `signature_item`
- `structure_item`

`val declare_inline_with_path_arg : Ppxlib__.Import.string ‑> 'context Context.t ‑> (Ppxlib__.Import.payload, 'a, 'context Ppxlib__.Import.list) Ppxlib.Ast_pattern.t ‑> (loc:Ppxlib.Location.t ‑> path:Ppxlib__.Import.string ‑> arg:Ppxlib.Longident.t Ppxlib__.Import.Asttypes.loc Ppxlib__.Import.option ‑> 'a) ‑> t`
`module For_context : sig ... end`
`val filter_by_context : 'a Context.t ‑> t Ppxlib__.Import.list ‑> 'a For_context.t Ppxlib__.Import.list`

Given a context and a list of extension expander, returns all the ones that are for this context.

`module Expert : sig ... end`
`val check_unused : Ppxlib.Ast_traverse.iter`
`module V2 : sig ... end`