Module Extension.Expert

This module allows to declare extensions that do not produce a value of the context type. This is typically useful for extensions point that depends on more things from the context than the path and location.

type ('context, 'payload) t

Type of declared expert extensions.

The 'context type parameter describes where the extension is expected and the 'payload one what its payload should contain.

val declare : string -> 'context Context.t -> ( Astlib.Ast_412.Parsetree.payload, 'a, 'b ) Ast_pattern.t -> 'a -> ( 'context, 'b ) t
val declare_with_path_arg : string -> 'context Context.t -> ( Astlib.Ast_412.Parsetree.payload, 'a, 'b ) Ast_pattern.t -> ( arg:Longident.t Loc.t option -> 'a ) -> ( 'context, 'b ) t
val convert : ( _, 'a ) t list -> loc:Location.t -> (string Astlib.Location.loc * Astlib.Ast_412.Parsetree.payload) -> 'a option