Module Ppx_optcomp

module Filename = Caml.Filename
module Env : sig ... end
module Value : sig ... end
module Of_item : sig ... end
module Ast_utils : sig ... end
module Token_stream : sig ... end
module Meta_ast : sig ... end
val rewrite : drop_item:('a -> Base.unit) -> eval_item:(Env.t -> 'a -> 'a) -> of_item:('a -> 'a Ppx_optcomp__Token.t) -> env:Env.t -> 'a Base.list -> Env.t * 'a Base.list
val map : < arg_label : Env.t -> Ppxlib_ast.Ast.arg_label -> Ppxlib_ast.Ast.arg_label; array : a. (Env.t'a) Ppxlib_traverse_builtins.T.map_with_context -> (Env.t'a array) Ppxlib_traverse_builtins.T.map_with_context; attribute : Env.t -> Ppxlib_ast.Ast.attribute -> Ppxlib_ast.Ast.attribute; attributes : Env.t -> Ppxlib_ast.Ast.attributes -> Ppxlib_ast.Ast.attributes; binding_op : Env.t -> Ppxlib_ast.Ast.binding_op -> Ppxlib_ast.Ast.binding_op; bool : (Env.t, bool) Ppxlib_traverse_builtins.T.map_with_context; case : Env.t -> Ppxlib_ast.Ast.case -> Ppxlib_ast.Ast.case; cases : Env.t -> Ppxlib_ast.Ast.cases -> Ppxlib_ast.Ast.cases; char : (Env.t, char) Ppxlib_traverse_builtins.T.map_with_context; class_declaration : Env.t -> Ppxlib_ast.Ast.class_declaration -> Ppxlib_ast.Ast.class_declaration; class_description : Env.t -> Ppxlib_ast.Ast.class_description -> Ppxlib_ast.Ast.class_description; class_expr : Env.t -> Ppxlib_ast.Ast.class_expr -> Ppxlib_ast.Ast.class_expr; class_expr_desc : Env.t -> Ppxlib_ast.Ast.class_expr_desc -> Ppxlib_ast.Ast.class_expr_desc; class_field : Env.t -> Ppxlib_ast.Ast.class_field -> Ppxlib_ast.Ast.class_field; class_field_desc : Env.t -> Ppxlib_ast.Ast.class_field_desc -> Ppxlib_ast.Ast.class_field_desc; class_field_kind : Env.t -> Ppxlib_ast.Ast.class_field_kind -> Ppxlib_ast.Ast.class_field_kind; class_infos : a. (Env.t -> 'a -> 'a) -> Env.t -> 'a Ppxlib_ast.Ast.class_infos -> 'a Ppxlib_ast.Ast.class_infos; class_signature : Env.t -> Ppxlib_ast.Ast.class_signature -> Ppxlib_ast.Ast.class_signature; class_structure : Env.t -> Ppxlib_ast.Ast.class_structure -> Ppxlib_ast.Ast.class_structure; class_type : Env.t -> Ppxlib_ast.Ast.class_type -> Ppxlib_ast.Ast.class_type; class_type_declaration : Env.t -> Ppxlib_ast.Ast.class_type_declaration -> Ppxlib_ast.Ast.class_type_declaration; class_type_desc : Env.t -> Ppxlib_ast.Ast.class_type_desc -> Ppxlib_ast.Ast.class_type_desc; class_type_field : Env.t -> Ppxlib_ast.Ast.class_type_field -> Ppxlib_ast.Ast.class_type_field; class_type_field_desc : Env.t -> Ppxlib_ast.Ast.class_type_field_desc -> Ppxlib_ast.Ast.class_type_field_desc; closed_flag : Env.t -> Ppxlib_ast.Ast.closed_flag -> Ppxlib_ast.Ast.closed_flag; constant : Env.t -> Ppxlib_ast.Ast.constant -> Ppxlib_ast.Ast.constant; constructor_arguments : Env.t -> Ppxlib_ast.Ast.constructor_arguments -> Ppxlib_ast.Ast.constructor_arguments; constructor_declaration : Env.t -> Ppxlib_ast.Ast.constructor_declaration -> Ppxlib_ast.Ast.constructor_declaration; core_type : Env.t -> Ppxlib_ast.Ast.core_type -> Ppxlib_ast.Ast.core_type; core_type_desc : Env.t -> Ppxlib_ast.Ast.core_type_desc -> Ppxlib_ast.Ast.core_type_desc; direction_flag : Env.t -> Ppxlib_ast.Ast.direction_flag -> Ppxlib_ast.Ast.direction_flag; directive_argument : Env.t -> Ppxlib_ast.Ast.directive_argument -> Ppxlib_ast.Ast.directive_argument; directive_argument_desc : Env.t -> Ppxlib_ast.Ast.directive_argument_desc -> Ppxlib_ast.Ast.directive_argument_desc; expression : Env.t -> Ppxlib_ast.Ast.expression -> Ppxlib_ast.Ast.expression; expression_desc : Env.t -> Ppxlib_ast.Ast.expression_desc -> Ppxlib_ast.Ast.expression_desc; extension : Env.t -> Ppxlib_ast.Ast.extension -> Ppxlib_ast.Ast.extension; extension_constructor : Env.t -> Ppxlib_ast.Ast.extension_constructor -> Ppxlib_ast.Ast.extension_constructor; extension_constructor_kind : Env.t -> Ppxlib_ast.Ast.extension_constructor_kind -> Ppxlib_ast.Ast.extension_constructor_kind; functor_parameter : Env.t -> Ppxlib_ast.Ast.functor_parameter -> Ppxlib_ast.Ast.functor_parameter; include_declaration : Env.t -> Ppxlib_ast.Ast.include_declaration -> Ppxlib_ast.Ast.include_declaration; include_description : Env.t -> Ppxlib_ast.Ast.include_description -> Ppxlib_ast.Ast.include_description; include_infos : a. (Env.t -> 'a -> 'a) -> Env.t -> 'a Ppxlib_ast.Ast.include_infos -> 'a Ppxlib_ast.Ast.include_infos; injectivity : Env.t -> Ppxlib_ast.Ast.injectivity -> Ppxlib_ast.Ast.injectivity; int : (Env.t, int) Ppxlib_traverse_builtins.T.map_with_context; label : Env.t -> Ppxlib_ast.Ast.label -> Ppxlib_ast.Ast.label; label_declaration : Env.t -> Ppxlib_ast.Ast.label_declaration -> Ppxlib_ast.Ast.label_declaration; letop : Env.t -> Ppxlib_ast.Ast.letop -> Ppxlib_ast.Ast.letop; list : a. (Env.t'a) Ppxlib_traverse_builtins.T.map_with_context -> (Env.t'a list) Ppxlib_traverse_builtins.T.map_with_context; loc : a. (Env.t -> 'a -> 'a) -> Env.t -> 'a Ppxlib_ast.Ast.loc -> 'a Ppxlib_ast.Ast.loc; location : Env.t -> Ppxlib_ast.Ast.location -> Ppxlib_ast.Ast.location; location_stack : Env.t -> Ppxlib_ast.Ast.location_stack -> Ppxlib_ast.Ast.location_stack; longident : Env.t -> Ppxlib_ast.Ast.longident -> Ppxlib_ast.Ast.longident; longident_loc : Env.t -> Ppxlib_ast.Ast.longident_loc -> Ppxlib_ast.Ast.longident_loc; module_binding : Env.t -> Ppxlib_ast.Ast.module_binding -> Ppxlib_ast.Ast.module_binding; module_declaration : Env.t -> Ppxlib_ast.Ast.module_declaration -> Ppxlib_ast.Ast.module_declaration; module_expr : Env.t -> Ppxlib_ast.Ast.module_expr -> Ppxlib_ast.Ast.module_expr; module_expr_desc : Env.t -> Ppxlib_ast.Ast.module_expr_desc -> Ppxlib_ast.Ast.module_expr_desc; module_substitution : Env.t -> Ppxlib_ast.Ast.module_substitution -> Ppxlib_ast.Ast.module_substitution; module_type : Env.t -> Ppxlib_ast.Ast.module_type -> Ppxlib_ast.Ast.module_type; module_type_declaration : Env.t -> Ppxlib_ast.Ast.module_type_declaration -> Ppxlib_ast.Ast.module_type_declaration; module_type_desc : Env.t -> Ppxlib_ast.Ast.module_type_desc -> Ppxlib_ast.Ast.module_type_desc; mutable_flag : Env.t -> Ppxlib_ast.Ast.mutable_flag -> Ppxlib_ast.Ast.mutable_flag; object_field : Env.t -> Ppxlib_ast.Ast.object_field -> Ppxlib_ast.Ast.object_field; object_field_desc : Env.t -> Ppxlib_ast.Ast.object_field_desc -> Ppxlib_ast.Ast.object_field_desc; open_declaration : Env.t -> Ppxlib_ast.Ast.open_declaration -> Ppxlib_ast.Ast.open_declaration; open_description : Env.t -> Ppxlib_ast.Ast.open_description -> Ppxlib_ast.Ast.open_description; open_infos : a. (Env.t -> 'a -> 'a) -> Env.t -> 'a Ppxlib_ast.Ast.open_infos -> 'a Ppxlib_ast.Ast.open_infos; option : a. (Env.t'a) Ppxlib_traverse_builtins.T.map_with_context -> (Env.t'a option) Ppxlib_traverse_builtins.T.map_with_context; override_flag : Env.t -> Ppxlib_ast.Ast.override_flag -> Ppxlib_ast.Ast.override_flag; package_type : Env.t -> Ppxlib_ast.Ast.package_type -> Ppxlib_ast.Ast.package_type; pattern : Env.t -> Ppxlib_ast.Ast.pattern -> Ppxlib_ast.Ast.pattern; pattern_desc : Env.t -> Ppxlib_ast.Ast.pattern_desc -> Ppxlib_ast.Ast.pattern_desc; payload : Env.t -> Ppxlib_ast.Ast.payload -> Ppxlib_ast.Ast.payload; position : Env.t -> Ppxlib_ast.Ast.position -> Ppxlib_ast.Ast.position; private_flag : Env.t -> Ppxlib_ast.Ast.private_flag -> Ppxlib_ast.Ast.private_flag; rec_flag : Env.t -> Ppxlib_ast.Ast.rec_flag -> Ppxlib_ast.Ast.rec_flag; row_field : Env.t -> Ppxlib_ast.Ast.row_field -> Ppxlib_ast.Ast.row_field; row_field_desc : Env.t -> Ppxlib_ast.Ast.row_field_desc -> Ppxlib_ast.Ast.row_field_desc; signature : Env.t -> Ppxlib_ast.Ast.signature -> Ppxlib_ast.Ast.signature; signature_gen : Env.t -> Ppxlib_ast.Ast.signature_item Base.list -> Env.t * Ppxlib_ast.Ast.signature_item Base.list; signature_item : Env.t -> Ppxlib_ast.Ast.signature_item -> Ppxlib_ast.Ast.signature_item; signature_item_desc : Env.t -> Ppxlib_ast.Ast.signature_item_desc -> Ppxlib_ast.Ast.signature_item_desc; string : (Env.t, string) Ppxlib_traverse_builtins.T.map_with_context; structure : Env.t -> Ppxlib_ast.Ast.structure -> Ppxlib_ast.Ast.structure; structure_gen : Env.t -> Ppxlib_ast.Ast.structure_item Base.list -> Env.t * Ppxlib_ast.Ast.structure_item Base.list; structure_item : Env.t -> Ppxlib_ast.Ast.structure_item -> Ppxlib_ast.Ast.structure_item; structure_item_desc : Env.t -> Ppxlib_ast.Ast.structure_item_desc -> Ppxlib_ast.Ast.structure_item_desc; toplevel_directive : Env.t -> Ppxlib_ast.Ast.toplevel_directive -> Ppxlib_ast.Ast.toplevel_directive; toplevel_phrase : Env.t -> Ppxlib_ast.Ast.toplevel_phrase -> Ppxlib_ast.Ast.toplevel_phrase; type_declaration : Env.t -> Ppxlib_ast.Ast.type_declaration -> Ppxlib_ast.Ast.type_declaration; type_exception : Env.t -> Ppxlib_ast.Ast.type_exception -> Ppxlib_ast.Ast.type_exception; type_extension : Env.t -> Ppxlib_ast.Ast.type_extension -> Ppxlib_ast.Ast.type_extension; type_kind : Env.t -> Ppxlib_ast.Ast.type_kind -> Ppxlib_ast.Ast.type_kind; value_binding : Env.t -> Ppxlib_ast.Ast.value_binding -> Ppxlib_ast.Ast.value_binding; value_description : Env.t -> Ppxlib_ast.Ast.value_description -> Ppxlib_ast.Ast.value_description; variance : Env.t -> Ppxlib_ast.Ast.variance -> Ppxlib_ast.Ast.variance; virtual_flag : Env.t -> Ppxlib_ast.Ast.virtual_flag -> Ppxlib_ast.Ast.virtual_flag; with_constraint : Env.t -> Ppxlib_ast.Ast.with_constraint -> Ppxlib_ast.Ast.with_constraint; >
val state : Env.t Base.ref
val preprocess : f:(Env.t -> 'a -> Env.t * 'b) -> 'a -> 'b