Specification of generator arguments

`type ('a, 'b) t`````
`type 'a param`````
`val empty : ('m, 'm) t`
`val arg : Ppxlib__.Import.string ‑> (Ppxlib__.Import.expression, 'a ‑> 'a Ppxlib__.Import.option, 'a Ppxlib__.Import.option) Ast_pattern.t ‑> 'a Ppxlib__.Import.option param`
`val flag : Ppxlib__.Import.string ‑> Ppxlib__.Import.bool param`

Flag matches punned labelled argument, i.e. of the form `~foo`. It returns `true` iff the argument is present.

`val (+>) : ('m1, 'a ‑> 'm2) t ‑> 'a param ‑> ('m1, 'm2) t`

For convenience, so that one can write the following without having to open both `Ast_pattern` and `Deriving.Args`:

            Deriving.Args.(empty
                           +> arg_option "foo" (estring __)
                           +> arg_option "bar" (pack2 (eint __ ** eint __))
                           +> flag "dotdotdot"
                          )

`include module type of sig ... end with type (a, b, c) t := (a, b, c) Ast_pattern.t`
`type ('a, 'b, 'c) t``= ('a, 'b, 'c) Ppxlib__.Ast_pattern0.t```
`val parse : ('a, 'b, 'c) t ‑> Location.t ‑> ?⁠on_error:(Ppxlib__.Import.unit ‑> 'c) ‑> 'a ‑> 'b ‑> 'c`
`module Packed = Ppxlib__Ast_pattern.Packed`
`val __ : ('a, 'a ‑> 'b, 'b) t`
`val __' : ('a, 'a Loc.t ‑> 'b, 'b) t`
`val alt : ('a, 'b, 'c) t ‑> ('a, 'b, 'c) t ‑> ('a, 'b, 'c) t`
`val alt_option : ('a, 'v ‑> 'b, 'c) t ‑> ('a, 'b, 'c) t ‑> ('a, 'v Ppxlib__.Import.option ‑> 'b, 'c) t`
`val (|||) : ('a, 'b, 'c) t ‑> ('a, 'b, 'c) t ‑> ('a, 'b, 'c) t`
`val map : ('a, 'b, 'c) t ‑> f:('d ‑> 'b) ‑> ('a, 'd, 'c) t`
`val map' : ('a, 'b, 'c) t ‑> f:(Location.t ‑> 'd ‑> 'b) ‑> ('a, 'd, 'c) t`
`val map_result : ('a, 'b, 'c) t ‑> f:('c ‑> 'd) ‑> ('a, 'b, 'd) t`
`val (>>|) : ('a, 'b, 'c) t ‑> ('d ‑> 'b) ‑> ('a, 'd, 'c) t`
`val map0 : ('a, 'b, 'c) t ‑> f:'v ‑> ('a, 'v ‑> 'b, 'c) t`
`val map1 : ('a, 'v1 ‑> 'b, 'c) t ‑> f:('v1 ‑> 'v) ‑> ('a, 'v ‑> 'b, 'c) t`
`val map2 : ('a, 'v1 ‑> 'v2 ‑> 'b, 'c) t ‑> f:('v1 ‑> 'v2 ‑> 'v) ‑> ('a, 'v ‑> 'b, 'c) t`
`val map0' : ('a, 'b, 'c) t ‑> f:(Location.t ‑> 'v) ‑> ('a, 'v ‑> 'b, 'c) t`
`val map1' : ('a, 'v1 ‑> 'b, 'c) t ‑> f:(Location.t ‑> 'v1 ‑> 'v) ‑> ('a, 'v ‑> 'b, 'c) t`
`val map2' : ('a, 'v1 ‑> 'v2 ‑> 'b, 'c) t ‑> f:(Location.t ‑> 'v1 ‑> 'v2 ‑> 'v) ‑> ('a, 'v ‑> 'b, 'c) t`
`val nil : ('b Ppxlib__.Import.list, 'a, 'a) t`
`val (^::) : ('a, 'b, 'c) t ‑> ('a Ppxlib__.Import.list, 'c, 'd) t ‑> ('a Ppxlib__.Import.list, 'b, 'd) t`
`val many : ('a, 'b ‑> 'b, 'c) t ‑> ('a Ppxlib__.Import.list, 'c Ppxlib__.Import.list ‑> 'd, 'd) t`
`val int : Ppxlib__.Import.int ‑> (Ppxlib__.Import.int, 'a, 'a) t`
`val char : Ppxlib__.Import.char ‑> (Ppxlib__.Import.char, 'a, 'a) t`
`val string : Ppxlib__.Import.string ‑> (Ppxlib__.Import.string, 'a, 'a) t`
`val float : Ppxlib__.Import.float ‑> (Ppxlib__.Import.float, 'a, 'a) t`
`val int32 : Ppxlib__.Import.int32 ‑> (Ppxlib__.Import.int32, 'a, 'a) t`
`val int64 : Ppxlib__.Import.int64 ‑> (Ppxlib__.Import.int64, 'a, 'a) t`
`val nativeint : Ppxlib__.Import.nativeint ‑> (Ppxlib__.Import.nativeint, 'a, 'a) t`
`val bool : Ppxlib__.Import.bool ‑> (Ppxlib__.Import.bool, 'a, 'a) t`
`val cst : to_string:('a ‑> Ppxlib__.Import.string) ‑> ?⁠equal:('a ‑> 'a ‑> Ppxlib__.Import.bool) ‑> 'a ‑> ('a, 'b, 'b) t`
`val none : ('b Ppxlib__.Import.option, 'a, 'a) t`
`val some : ('a, 'b, 'c) t ‑> ('a Ppxlib__.Import.option, 'b, 'c) t`
`val pair : ('a1, 'b, 'c) t ‑> ('a2, 'c, 'd) t ‑> ('a1 * 'a2, 'b, 'd) t`
`val (**) : ('a1, 'b, 'c) t ‑> ('a2, 'c, 'd) t ‑> ('a1 * 'a2, 'b, 'd) t`
`val triple : ('a1, 'b, 'c) t ‑> ('a2, 'c, 'd) t ‑> ('a3, 'd, 'e) t ‑> ('a1 * 'a2 * 'a3, 'b, 'e) t`
`val loc : ('a, 'b, 'c) t ‑> ('a Loc.t, 'b, 'c) t`
`val pack0 : ('a, 'b, 'c) t ‑> ('a, Ppxlib__.Import.unit ‑> 'b, 'c) t`
`val pack2 : ('a, 'b ‑> 'c ‑> 'd, 'e) t ‑> ('a, ('b * 'c) ‑> 'd, 'e) t`
`val pack3 : ('a, 'b ‑> 'c ‑> 'd ‑> 'e, 'f) t ‑> ('a, ('b * 'c * 'd) ‑> 'e, 'f) t`
`val nolabel : (Ppxlib__.Import.arg_label, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val labelled : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.arg_label, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val optional : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.arg_label, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val case : lhs:(Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> guard:(Ppxlib__.Import.expression option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> rhs:(Ppxlib__.Import.expression, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.case, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pcl_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcl_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcl_constr : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcl_structure : (Ppxlib__.Import.class_structure, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pcl_fun : (Ppxlib__.Import.arg_label, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'd, 'e) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'a, 'e) Ppxlib__.Ast_pattern0.t`
`val pcl_apply : (Ppxlib__.Import.class_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> ((Ppxlib__.Import.arg_label * Ppxlib__.Import.expression) list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcl_let : (Ppxlib__.Import.rec_flag, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.value_binding list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pcl_constraint : (Ppxlib__.Import.class_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcl_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pcf_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcf_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcf_inherit : (Ppxlib__.Import.override_flag, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_expr, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (string Ppxlib__.Import.loc option, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pcf_val : (string Ppxlib__.Import.loc * Ppxlib__.Import.mutable_flag * Ppxlib__.Import.class_field_kind, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pcf_method : (string Ppxlib__.Import.loc * Ppxlib__.Import.private_flag * Ppxlib__.Import.class_field_kind, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pcf_constraint : (Ppxlib__.Import.core_type * Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pcf_initializer : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pcf_attribute : (Ppxlib__.Import.attribute, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pcf_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val cfk_virtual : (Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field_kind, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val cfk_concrete : (Ppxlib__.Import.override_flag, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_field_kind, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val class_infos_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> ('c Ppxlib__.Import.class_infos, 'b, 'd) Ppxlib__.Ast_pattern0.t ‑> ('c Ppxlib__.Import.class_infos, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val class_infos : virt:(Ppxlib__.Import.virtual_flag, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> params:((Ppxlib__.Import.core_type * Ppxlib__.Import.variance) list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> name:(string, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> expr:('e, 'd, 'f) Ppxlib__.Ast_pattern0.t ‑> ('e Ppxlib__.Import.class_infos, 'a, 'f) Ppxlib__.Ast_pattern0.t`
`val class_signature : self:(Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> fields:(Ppxlib__.Import.class_type_field list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_signature, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val class_structure : self:(Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> fields:(Ppxlib__.Import.class_field list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_structure, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcty_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcty_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcty_constr : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcty_signature : (Ppxlib__.Import.class_signature, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pcty_arrow : (Ppxlib__.Import.arg_label, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pcty_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pctf_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type_field, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type_field, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pctf_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type_field, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type_field, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pctf_inherit : (Ppxlib__.Import.class_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pctf_val : (string Ppxlib__.Import.loc * Ppxlib__.Import.mutable_flag * Ppxlib__.Import.virtual_flag * Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pctf_method : (string Ppxlib__.Import.loc * Ppxlib__.Import.private_flag * Ppxlib__.Import.virtual_flag * Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pctf_constraint : (Ppxlib__.Import.core_type * Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pctf_attribute : (Ppxlib__.Import.attribute, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pctf_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.class_type_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val closed : (Ppxlib__.Import.closed_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val open_ : (Ppxlib__.Import.closed_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val pconst_integer : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (char option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.constant, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pconst_char : (char, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.constant, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pconst_string : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (string option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.constant, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pconst_float : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (char option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.constant, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pcstr_tuple : (Ppxlib__.Import.core_type list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.constructor_arguments, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pcstr_record : (Ppxlib__.Import.label_declaration list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.constructor_arguments, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val constructor_declaration_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.constructor_declaration, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.constructor_declaration, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val constructor_declaration : name:(string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> args:(Ppxlib__.Import.constructor_arguments, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> res:(Ppxlib__.Import.core_type option, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.constructor_declaration, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val ptyp_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ptyp_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ptyp_any : (Ppxlib__.Import.core_type, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val ptyp_var : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ptyp_arrow : (Ppxlib__.Import.arg_label, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val ptyp_tuple : (Ppxlib__.Import.core_type list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ptyp_constr : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ptyp_object : ((string Ppxlib__.Import.loc * Ppxlib__.Import.attributes * Ppxlib__.Import.core_type) list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.closed_flag, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ptyp_class : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ptyp_alias : (Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (string, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ptyp_variant : (Ppxlib__.Import.row_field list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.closed_flag, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.label list option, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val ptyp_poly : (string Ppxlib__.Import.loc list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ptyp_package : (Ppxlib__.Import.package_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ptyp_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val upto : (Ppxlib__.Import.direction_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val downto_ : (Ppxlib__.Import.direction_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val pdir_none : (Ppxlib__.Import.directive_argument, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val pdir_string : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.directive_argument, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pdir_int : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (char option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.directive_argument, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pdir_ident : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.directive_argument, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pdir_bool : (bool, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.directive_argument, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_ident : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_constant : (Ppxlib__.Import.constant, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_let : (Ppxlib__.Import.rec_flag, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.value_binding list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pexp_function : (Ppxlib__.Import.case list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_fun : (Ppxlib__.Import.arg_label, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'd, 'e) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'e) Ppxlib__.Ast_pattern0.t`
`val pexp_apply : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> ((Ppxlib__.Import.arg_label * Ppxlib__.Import.expression) list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_match : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.case list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_try : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.case list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_tuple : (Ppxlib__.Import.expression list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_construct : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_variant : (Ppxlib__.Import.label, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_record : ((Ppxlib__.Import.longident_loc * Ppxlib__.Import.expression) list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_field : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.longident, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_setfield : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.longident, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pexp_array : (Ppxlib__.Import.expression list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_ifthenelse : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression option, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pexp_sequence : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_while : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_for : (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.direction_flag, 'd, 'e) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'e, 'f) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'f) Ppxlib__.Ast_pattern0.t`
`val pexp_constraint : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_coerce : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pexp_send : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (string, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_new : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_setinstvar : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_override : ((string Ppxlib__.Import.loc * Ppxlib__.Import.expression) list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_letmodule : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pexp_letexception : (Ppxlib__.Import.extension_constructor, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_assert : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_lazy : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_poly : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_object : (Ppxlib__.Import.class_structure, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_newtype : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pexp_pack : (Ppxlib__.Import.module_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_open : (Ppxlib__.Import.override_flag, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.longident, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pexp_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pexp_unreachable : (Ppxlib__.Import.expression, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val extension_constructor_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.extension_constructor, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.extension_constructor, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val extension_constructor : name:(string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> kind:(Ppxlib__.Import.extension_constructor_kind, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.extension_constructor, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pext_decl : (Ppxlib__.Import.constructor_arguments, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.extension_constructor_kind, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pext_rebind : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.extension_constructor_kind, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val include_infos_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> ('c Ppxlib__.Import.include_infos, 'b, 'd) Ppxlib__.Ast_pattern0.t ‑> ('c Ppxlib__.Import.include_infos, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val include_infos : mod_:('a, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> ('a Ppxlib__.Import.include_infos, 'b, 'c) Ppxlib__.Ast_pattern0.t`
`val label_declaration_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.label_declaration, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.label_declaration, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val label_declaration : name:(string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> mutable_:(Ppxlib__.Import.mutable_flag, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> type_:(Ppxlib__.Import.core_type, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.label_declaration, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val location : start:(Ppxlib__.Import.position, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> end_:(Ppxlib__.Import.position, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> ghost:(bool, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.location, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val lident : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ldot : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (string, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.longident, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val lapply : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.longident, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.longident, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val module_binding_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_binding, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_binding, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val module_binding : name:(string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> expr:(Ppxlib__.Import.module_expr, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_binding, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val module_declaration_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_declaration, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_declaration, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val module_declaration : name:(string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> type_:(Ppxlib__.Import.module_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_declaration, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pmod_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pmod_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pmod_ident : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pmod_structure : (Ppxlib__.Import.structure, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pmod_functor : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pmod_apply : (Ppxlib__.Import.module_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pmod_constraint : (Ppxlib__.Import.module_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pmod_unpack : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pmod_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pmty_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pmty_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pmty_ident : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pmty_signature : (Ppxlib__.Import.signature, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pmty_functor : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val pmty_with : (Ppxlib__.Import.module_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.with_constraint list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pmty_typeof : (Ppxlib__.Import.module_expr, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pmty_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pmty_alias : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val module_type_declaration_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type_declaration, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type_declaration, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val module_type_declaration : name:(string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> type_:(Ppxlib__.Import.module_type option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.module_type_declaration, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val immutable : (Ppxlib__.Import.mutable_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val mutable_ : (Ppxlib__.Import.mutable_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val open_description_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.open_description, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.open_description, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val open_description : lid:(Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> override:(Ppxlib__.Import.override_flag, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.open_description, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val override : (Ppxlib__.Import.override_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val fresh : (Ppxlib__.Import.override_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val ppat_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ppat_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ppat_any : (Ppxlib__.Import.pattern, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val ppat_var : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ppat_alias : (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (string, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ppat_constant : (Ppxlib__.Import.constant, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ppat_interval : (Ppxlib__.Import.constant, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.constant, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ppat_tuple : (Ppxlib__.Import.pattern list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ppat_construct : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ppat_variant : (Ppxlib__.Import.label, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ppat_record : ((Ppxlib__.Import.longident_loc * Ppxlib__.Import.pattern) list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.closed_flag, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ppat_array : (Ppxlib__.Import.pattern list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ppat_or : (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ppat_constraint : (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ppat_type : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ppat_lazy : (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ppat_unpack : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ppat_exception : (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ppat_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ppat_open : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.pattern, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pstr : (Ppxlib__.Import.structure, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.payload, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig : (Ppxlib__.Import.signature, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.payload, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ptyp : (Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.payload, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ppat : (Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.expression option, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.payload, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val position : fname:(string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> lnum:(int, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> bol:(int, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> cnum:(int, 'd, 'e) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.position, 'a, 'e) Ppxlib__.Ast_pattern0.t`
`val private_ : (Ppxlib__.Import.private_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val public : (Ppxlib__.Import.private_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val nonrecursive : (Ppxlib__.Import.rec_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val recursive : (Ppxlib__.Import.rec_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val rtag : (Ppxlib__.Import.label, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.attributes, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (bool, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.core_type list, 'd, 'e) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.row_field, 'a, 'e) Ppxlib__.Ast_pattern0.t`
`val rinherit : (Ppxlib__.Import.core_type, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.row_field, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val psig_value : (Ppxlib__.Import.value_description, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_type : (Ppxlib__.Import.rec_flag, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_declaration list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val psig_typext : (Ppxlib__.Import.type_extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_exception : (Ppxlib__.Import.extension_constructor, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_module : (Ppxlib__.Import.module_declaration, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_recmodule : (Ppxlib__.Import.module_declaration list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_modtype : (Ppxlib__.Import.module_type_declaration, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_open : (Ppxlib__.Import.open_description, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_include : (Ppxlib__.Import.include_description, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_class : (Ppxlib__.Import.class_description list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_class_type : (Ppxlib__.Import.class_type_declaration list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_attribute : (Ppxlib__.Import.attribute, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val psig_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.attributes, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.signature_item, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pstr_loc : (Ppxlib__.Import.location, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pstr_eval : (Ppxlib__.Import.expression, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.attributes, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pstr_value : (Ppxlib__.Import.rec_flag, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.value_binding list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pstr_primitive : (Ppxlib__.Import.value_description, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_type : (Ppxlib__.Import.rec_flag, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_declaration list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pstr_typext : (Ppxlib__.Import.type_extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_exception : (Ppxlib__.Import.extension_constructor, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_module : (Ppxlib__.Import.module_binding, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_recmodule : (Ppxlib__.Import.module_binding list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_modtype : (Ppxlib__.Import.module_type_declaration, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_open : (Ppxlib__.Import.open_description, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_class : (Ppxlib__.Import.class_declaration list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_class_type : (Ppxlib__.Import.class_type_declaration list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_include : (Ppxlib__.Import.include_declaration, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_attribute : (Ppxlib__.Import.attribute, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pstr_extension : (Ppxlib__.Import.extension, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.attributes, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.structure_item, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val ptop_def : (Ppxlib__.Import.structure, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.toplevel_phrase, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ptop_dir : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.directive_argument, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.toplevel_phrase, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val type_declaration_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_declaration, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_declaration, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val type_declaration : name:(string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> params:((Ppxlib__.Import.core_type * Ppxlib__.Import.variance) list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> cstrs:((Ppxlib__.Import.core_type * Ppxlib__.Import.core_type * Ppxlib__.Import.location) list, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> kind:(Ppxlib__.Import.type_kind, 'd, 'e) Ppxlib__.Ast_pattern0.t ‑> private_:(Ppxlib__.Import.private_flag, 'e, 'f) Ppxlib__.Ast_pattern0.t ‑> manifest:(Ppxlib__.Import.core_type option, 'f, 'g) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_declaration, 'a, 'g) Ppxlib__.Ast_pattern0.t`
`val type_extension_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_extension, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_extension, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val type_extension : path:(Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> params:((Ppxlib__.Import.core_type * Ppxlib__.Import.variance) list, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> constructors:(Ppxlib__.Import.extension_constructor list, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> private_:(Ppxlib__.Import.private_flag, 'd, 'e) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_extension, 'a, 'e) Ppxlib__.Ast_pattern0.t`
`val ptype_abstract : (Ppxlib__.Import.type_kind, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val ptype_variant : (Ppxlib__.Import.constructor_declaration list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_kind, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ptype_record : (Ppxlib__.Import.label_declaration list, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_kind, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val ptype_open : (Ppxlib__.Import.type_kind, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val value_binding_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.value_binding, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.value_binding, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val value_binding : pat:(Ppxlib__.Import.pattern, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> expr:(Ppxlib__.Import.expression, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.value_binding, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val value_description_attributes : (Ppxlib__.Import.attributes, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.value_description, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.value_description, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val value_description : name:(string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> type_:(Ppxlib__.Import.core_type, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> prim:(string list, 'c, 'd) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.value_description, 'a, 'd) Ppxlib__.Ast_pattern0.t`
`val covariant : (Ppxlib__.Import.variance, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val contravariant : (Ppxlib__.Import.variance, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val invariant : (Ppxlib__.Import.variance, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val virtual_ : (Ppxlib__.Import.virtual_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val concrete : (Ppxlib__.Import.virtual_flag, 'a, 'a) Ppxlib__.Ast_pattern0.t`
`val pwith_type : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.type_declaration, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.with_constraint, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pwith_module : (Ppxlib__.Import.longident, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.longident, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.with_constraint, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val pwith_typesubst : (Ppxlib__.Import.type_declaration, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.with_constraint, 'a, 'b) Ppxlib__.Ast_pattern0.t`
`val pwith_modsubst : (string, 'a, 'b) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.longident, 'b, 'c) Ppxlib__.Ast_pattern0.t ‑> (Ppxlib__.Import.with_constraint, 'a, 'c) Ppxlib__.Ast_pattern0.t`
`val true_ : (Ppxlib__.Import.bool, 'a, 'a) t`
`val false_ : (Ppxlib__.Import.bool, 'a, 'a) t`
`val eint : (Ppxlib__.Import.int, 'a, 'b) t ‑> (Ppxlib__.Import.expression, 'a, 'b) t`
`val echar : (Ppxlib__.Import.char, 'a, 'b) t ‑> (Ppxlib__.Import.expression, 'a, 'b) t`
`val estring : (Ppxlib__.Import.string, 'a, 'b) t ‑> (Ppxlib__.Import.expression, 'a, 'b) t`
`val efloat : (Ppxlib__.Import.string, 'a, 'b) t ‑> (Ppxlib__.Import.expression, 'a, 'b) t`
`val eint32 : (Ppxlib__.Import.int32, 'a, 'b) t ‑> (Ppxlib__.Import.expression, 'a, 'b) t`
`val eint64 : (Ppxlib__.Import.int64, 'a, 'b) t ‑> (Ppxlib__.Import.expression, 'a, 'b) t`
`val enativeint : (Ppxlib__.Import.nativeint, 'a, 'b) t ‑> (Ppxlib__.Import.expression, 'a, 'b) t`
`val pint : (Ppxlib__.Import.int, 'a, 'b) t ‑> (Ppxlib__.Import.pattern, 'a, 'b) t`
`val pchar : (Ppxlib__.Import.char, 'a, 'b) t ‑> (Ppxlib__.Import.pattern, 'a, 'b) t`
`val pstring : (Ppxlib__.Import.string, 'a, 'b) t ‑> (Ppxlib__.Import.pattern, 'a, 'b) t`
`val pfloat : (Ppxlib__.Import.string, 'a, 'b) t ‑> (Ppxlib__.Import.pattern, 'a, 'b) t`
`val pint32 : (Ppxlib__.Import.int32, 'a, 'b) t ‑> (Ppxlib__.Import.pattern, 'a, 'b) t`
`val pint64 : (Ppxlib__.Import.int64, 'a, 'b) t ‑> (Ppxlib__.Import.pattern, 'a, 'b) t`
`val pnativeint : (Ppxlib__.Import.nativeint, 'a, 'b) t ‑> (Ppxlib__.Import.pattern, 'a, 'b) t`
`val single_expr_payload : (Ppxlib__.Import.expression, 'a, 'b) t ‑> (Ppxlib__.Import.payload, 'a, 'b) t`
`val no_label : (Ppxlib__.Import.expression, 'a, 'b) t ‑> (Ppxlib__.Import.Asttypes.arg_label * Ppxlib__.Import.expression, 'a, 'b) t`
`val attribute : (Ppxlib__.Import.string, 'a, 'b) t ‑> (Ppxlib__.Import.payload, 'b, 'c) t ‑> (Ppxlib__.Import.attribute, 'a, 'c) t`
`val extension : (Ppxlib__.Import.string, 'a, 'b) t ‑> (Ppxlib__.Import.payload, 'b, 'c) t ‑> (Ppxlib__.Import.attribute, 'a, 'c) t`
`val elist : (Ppxlib__.Import.expression, 'a ‑> 'a, 'b) t ‑> (Ppxlib__.Import.expression, 'b Ppxlib__.Import.list ‑> 'c, 'c) t`
`type context``= Ppxlib__Ast_pattern.context```
`val of_func : (context ‑> Location.t ‑> 'a ‑> 'b ‑> 'c) ‑> ('a, 'b, 'c) t`
`val to_func : ('a, 'b, 'c) t ‑> context ‑> Location.t ‑> 'a ‑> 'b ‑> 'c`