Module Ppx_optcomp

module Filename = 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 -> Asttypes.arg_label -> Asttypes.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 -> Parsetree.attribute -> Parsetree.attribute ; attributes : Env.t -> Parsetree.attribute list -> Parsetree.attribute list ; binding_op : Env.t -> Parsetree.binding_op -> Parsetree.binding_op ; bool : (Env.t, bool) Ppxlib_traverse_builtins.T.map_with_context ; case : Env.t -> Parsetree.case -> Parsetree.case ; cases : Env.t -> Parsetree.case list -> Parsetree.case list ; char : (Env.t, char) Ppxlib_traverse_builtins.T.map_with_context ; class_declaration : Env.t -> Parsetree.class_expr Parsetree.class_infos -> Parsetree.class_expr Parsetree.class_infos ; class_description : Env.t -> Parsetree.class_type Parsetree.class_infos -> Parsetree.class_type Parsetree.class_infos ; class_expr : Env.t -> Parsetree.class_expr -> Parsetree.class_expr ; class_expr_desc : Env.t -> Parsetree.class_expr_desc -> Parsetree.class_expr_desc ; class_field : Env.t -> Parsetree.class_field -> Parsetree.class_field ; class_field_desc : Env.t -> Parsetree.class_field_desc -> Parsetree.class_field_desc ; class_field_kind : Env.t -> Parsetree.class_field_kind -> Parsetree.class_field_kind ; class_infos : 'a. (Env.t -> 'a -> 'a) -> Env.t -> 'a Parsetree.class_infos -> 'a Parsetree.class_infos ; class_signature : Env.t -> Parsetree.class_signature -> Parsetree.class_signature ; class_structure : Env.t -> Parsetree.class_structure -> Parsetree.class_structure ; class_type : Env.t -> Parsetree.class_type -> Parsetree.class_type ; class_type_declaration : Env.t -> Parsetree.class_type Parsetree.class_infos -> Parsetree.class_type Parsetree.class_infos ; class_type_desc : Env.t -> Parsetree.class_type_desc -> Parsetree.class_type_desc ; class_type_field : Env.t -> Parsetree.class_type_field -> Parsetree.class_type_field ; class_type_field_desc : Env.t -> Parsetree.class_type_field_desc -> Parsetree.class_type_field_desc ; closed_flag : Env.t -> Asttypes.closed_flag -> Asttypes.closed_flag ; constant : Env.t -> Parsetree.constant -> Parsetree.constant ; constructor_arguments : Env.t -> Parsetree.constructor_arguments -> Parsetree.constructor_arguments ; constructor_declaration : Env.t -> Parsetree.constructor_declaration -> Parsetree.constructor_declaration ; core_type : Env.t -> Parsetree.core_type -> Parsetree.core_type ; core_type_desc : Env.t -> Parsetree.core_type_desc -> Parsetree.core_type_desc ; direction_flag : Env.t -> Asttypes.direction_flag -> Asttypes.direction_flag ; directive_argument : Env.t -> Parsetree.directive_argument -> Parsetree.directive_argument ; directive_argument_desc : Env.t -> Parsetree.directive_argument_desc -> Parsetree.directive_argument_desc ; expression : Env.t -> Parsetree.expression -> Parsetree.expression ; expression_desc : Env.t -> Parsetree.expression_desc -> Parsetree.expression_desc ; extension : Env.t -> (string Astlib.Location.loc * Parsetree.payload) -> string Astlib.Location.loc * Parsetree.payload ; extension_constructor : Env.t -> Parsetree.extension_constructor -> Parsetree.extension_constructor ; extension_constructor_kind : Env.t -> Parsetree.extension_constructor_kind -> Parsetree.extension_constructor_kind ; functor_parameter : Env.t -> Parsetree.functor_parameter -> Parsetree.functor_parameter ; include_declaration : Env.t -> Parsetree.module_expr Parsetree.include_infos -> Parsetree.module_expr Parsetree.include_infos ; include_description : Env.t -> Parsetree.module_type Parsetree.include_infos -> Parsetree.module_type Parsetree.include_infos ; include_infos : 'a. (Env.t -> 'a -> 'a) -> Env.t -> 'a Parsetree.include_infos -> 'a Parsetree.include_infos ; injectivity : Env.t -> Asttypes.injectivity -> Asttypes.injectivity ; int : (Env.t, int) Ppxlib_traverse_builtins.T.map_with_context ; label : Env.t -> string -> string ; label_declaration : Env.t -> Parsetree.label_declaration -> Parsetree.label_declaration ; letop : Env.t -> Parsetree.letop -> Parsetree.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 Astlib.Location.loc -> 'a Astlib.Location.loc ; location : Env.t -> Astlib.Location.t -> Astlib.Location.t ; location_stack : Env.t -> Astlib.Location.t list -> Astlib.Location.t list ; longident : Env.t -> Astlib.Longident.t -> Astlib.Longident.t ; longident_loc : Env.t -> Astlib.Longident.t Astlib.Location.loc -> Astlib.Longident.t Astlib.Location.loc ; module_binding : Env.t -> Parsetree.module_binding -> Parsetree.module_binding ; module_declaration : Env.t -> Parsetree.module_declaration -> Parsetree.module_declaration ; module_expr : Env.t -> Parsetree.module_expr -> Parsetree.module_expr ; module_expr_desc : Env.t -> Parsetree.module_expr_desc -> Parsetree.module_expr_desc ; module_substitution : Env.t -> Parsetree.module_substitution -> Parsetree.module_substitution ; module_type : Env.t -> Parsetree.module_type -> Parsetree.module_type ; module_type_declaration : Env.t -> Parsetree.module_type_declaration -> Parsetree.module_type_declaration ; module_type_desc : Env.t -> Parsetree.module_type_desc -> Parsetree.module_type_desc ; mutable_flag : Env.t -> Asttypes.mutable_flag -> Asttypes.mutable_flag ; object_field : Env.t -> Parsetree.object_field -> Parsetree.object_field ; object_field_desc : Env.t -> Parsetree.object_field_desc -> Parsetree.object_field_desc ; open_declaration : Env.t -> Parsetree.module_expr Parsetree.open_infos -> Parsetree.module_expr Parsetree.open_infos ; open_description : Env.t -> Astlib.Longident.t Astlib.Location.loc Parsetree.open_infos -> Astlib.Longident.t Astlib.Location.loc Parsetree.open_infos ; open_infos : 'a. (Env.t -> 'a -> 'a) -> Env.t -> 'a Parsetree.open_infos -> 'a Parsetree.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 -> Asttypes.override_flag -> Asttypes.override_flag ; package_type : Env.t -> (Astlib.Longident.t Astlib.Location.loc * (Astlib.Longident.t Astlib.Location.loc * Parsetree.core_type) list) -> Astlib.Longident.t Astlib.Location.loc * (Astlib.Longident.t Astlib.Location.loc * Parsetree.core_type) list ; pattern : Env.t -> Parsetree.pattern -> Parsetree.pattern ; pattern_desc : Env.t -> Parsetree.pattern_desc -> Parsetree.pattern_desc ; payload : Env.t -> Parsetree.payload -> Parsetree.payload ; position : Env.t -> Lexing.position -> Lexing.position ; private_flag : Env.t -> Asttypes.private_flag -> Asttypes.private_flag ; rec_flag : Env.t -> Asttypes.rec_flag -> Asttypes.rec_flag ; row_field : Env.t -> Parsetree.row_field -> Parsetree.row_field ; row_field_desc : Env.t -> Parsetree.row_field_desc -> Parsetree.row_field_desc ; signature : Env.t -> Parsetree.signature_item list -> Parsetree.signature_item list ; signature_gen : Env.t -> Parsetree.signature_item Base.list -> Env.t * Parsetree.signature_item Base.list ; signature_item : Env.t -> Parsetree.signature_item -> Parsetree.signature_item ; signature_item_desc : Env.t -> Parsetree.signature_item_desc -> Parsetree.signature_item_desc ; string : (Env.t, string) Ppxlib_traverse_builtins.T.map_with_context ; structure : Env.t -> Parsetree.structure_item list -> Parsetree.structure_item list ; structure_gen : Env.t -> Parsetree.structure_item Base.list -> Env.t * Parsetree.structure_item Base.list ; structure_item : Env.t -> Parsetree.structure_item -> Parsetree.structure_item ; structure_item_desc : Env.t -> Parsetree.structure_item_desc -> Parsetree.structure_item_desc ; toplevel_directive : Env.t -> Parsetree.toplevel_directive -> Parsetree.toplevel_directive ; toplevel_phrase : Env.t -> Parsetree.toplevel_phrase -> Parsetree.toplevel_phrase ; type_declaration : Env.t -> Parsetree.type_declaration -> Parsetree.type_declaration ; type_exception : Env.t -> Parsetree.type_exception -> Parsetree.type_exception ; type_extension : Env.t -> Parsetree.type_extension -> Parsetree.type_extension ; type_kind : Env.t -> Parsetree.type_kind -> Parsetree.type_kind ; value_binding : Env.t -> Parsetree.value_binding -> Parsetree.value_binding ; value_description : Env.t -> Parsetree.value_description -> Parsetree.value_description ; variance : Env.t -> Asttypes.variance -> Asttypes.variance ; virtual_flag : Env.t -> Asttypes.virtual_flag -> Asttypes.virtual_flag ; with_constraint : Env.t -> Parsetree.with_constraint -> Parsetree.with_constraint >
val state : Env.t Base.ref
val preprocess : f:(Env.t -> 'a -> Env.t * 'b) -> 'a -> 'b