Module Make.Mappers

val regenerate_span_ids : < visit_F__arbitrary_lhs : unit -> F.arbitrary_lhs -> F.arbitrary_lhs ; visit_F__as_pattern : unit -> F.as_pattern -> F.as_pattern ; visit_F__block : unit -> F.block -> F.block ; visit_F__break : unit -> F.break -> F.break ; visit_F__construct_base : unit -> F.construct_base -> F.construct_base ; visit_F__continue : unit -> F.continue -> F.continue ; visit_F__dyn : unit -> F.dyn -> F.dyn ; visit_F__early_exit : unit -> F.early_exit -> F.early_exit ; visit_F__for_index_loop : unit -> F.for_index_loop -> F.for_index_loop ; visit_F__for_loop : unit -> F.for_loop -> F.for_loop ; visit_F__lifetime : unit -> F.lifetime -> F.lifetime ; visit_F__loop : unit -> F.loop -> F.loop ; visit_F__macro : unit -> F.macro -> F.macro ; visit_F__match_guard : unit -> F.match_guard -> F.match_guard ; visit_F__monadic_action : unit -> F.monadic_action -> F.monadic_action ; visit_F__monadic_binding : unit -> F.monadic_binding -> F.monadic_binding ; visit_F__mutable_pointer : unit -> F.mutable_pointer -> F.mutable_pointer ; visit_F__mutable_reference : unit -> F.mutable_reference -> F.mutable_reference ; visit_F__mutable_variable : unit -> F.mutable_variable -> F.mutable_variable ; visit_F__nontrivial_lhs : unit -> F.nontrivial_lhs -> F.nontrivial_lhs ; visit_F__question_mark : unit -> F.question_mark -> F.question_mark ; visit_F__raw_pointer : unit -> F.raw_pointer -> F.raw_pointer ; visit_F__reference : unit -> F.reference -> F.reference ; visit_F__slice : unit -> F.slice -> F.slice ; visit_F__state_passing_loop : unit -> F.state_passing_loop -> F.state_passing_loop ; visit_F__trait_item_default : unit -> F.trait_item_default -> F.trait_item_default ; visit_F__unsafe : unit -> F.unsafe -> F.unsafe ; visit_F__while_loop : unit -> F.while_loop -> F.while_loop ; visit_Local_ident__t : unit -> Local_ident.t -> Local_ident.t ; visit_arm : unit -> Hax_engine__Ast.Make(F).arm -> Hax_engine__Ast.Make(F).arm ; visit_arm' : unit -> Hax_engine__Ast.Make(F).arm' -> Hax_engine__Ast.Make(F).arm' ; visit_attr : unit -> Ast.attr -> Ast.attr ; visit_attrs : unit -> Ast.attrs -> Ast.attrs ; visit_binding_mode : unit -> Hax_engine__Ast.Make(F).binding_mode -> Hax_engine__Ast.Make(F).binding_mode ; visit_bool : unit -> Base.bool -> Base.bool ; visit_borrow_kind : unit -> Hax_engine__Ast.Make(F).borrow_kind -> Hax_engine__Ast.Make(F).borrow_kind ; visit_char : unit -> Base.char -> Base.char ; visit_concrete_ident : unit -> Ast.concrete_ident -> Ast.concrete_ident ; visit_dyn_trait_goal : unit -> Hax_engine__Ast.Make(F).dyn_trait_goal -> Hax_engine__Ast.Make(F).dyn_trait_goal ; visit_expr : unit -> Hax_engine__Ast.Make(F).expr -> Hax_engine__Ast.Make(F).expr ; visit_expr' : unit -> Hax_engine__Ast.Make(F).expr' -> Hax_engine__Ast.Make(F).expr' ; visit_field_pat : unit -> Hax_engine__Ast.Make(F).field_pat -> Hax_engine__Ast.Make(F).field_pat ; visit_float_kind : unit -> Ast.float_kind -> Ast.float_kind ; visit_generic_constraint : unit -> Hax_engine__Ast.Make(F).generic_constraint -> Hax_engine__Ast.Make(F).generic_constraint ; visit_generic_param : unit -> Hax_engine__Ast.Make(F).generic_param -> Hax_engine__Ast.Make(F).generic_param ; visit_generic_param_kind : unit -> Hax_engine__Ast.Make(F).generic_param_kind -> Hax_engine__Ast.Make(F).generic_param_kind ; visit_generic_value : unit -> Hax_engine__Ast.Make(F).generic_value -> Hax_engine__Ast.Make(F).generic_value ; visit_generics : unit -> Hax_engine__Ast.Make(F).generics -> Hax_engine__Ast.Make(F).generics ; visit_global_ident : unit -> Ast.global_ident -> Ast.global_ident ; visit_guard : unit -> Hax_engine__Ast.Make(F).guard -> Hax_engine__Ast.Make(F).guard ; visit_guard' : unit -> Hax_engine__Ast.Make(F).guard' -> Hax_engine__Ast.Make(F).guard' ; visit_impl_expr : unit -> Hax_engine__Ast.Make(F).impl_expr -> Hax_engine__Ast.Make(F).impl_expr ; visit_impl_expr_kind : unit -> Hax_engine__Ast.Make(F).impl_expr_kind -> Hax_engine__Ast.Make(F).impl_expr_kind ; visit_impl_ident : unit -> Hax_engine__Ast.Make(F).impl_ident -> Hax_engine__Ast.Make(F).impl_ident ; visit_impl_item : unit -> Hax_engine__Ast.Make(F).impl_item -> Hax_engine__Ast.Make(F).impl_item ; visit_impl_item' : unit -> Hax_engine__Ast.Make(F).impl_item' -> Hax_engine__Ast.Make(F).impl_item' ; visit_int_kind : unit -> Ast.int_kind -> Ast.int_kind ; visit_item : unit -> Hax_engine__Ast.Make(F).item -> Hax_engine__Ast.Make(F).item ; visit_item' : unit -> Hax_engine__Ast.Make(F).item' -> Hax_engine__Ast.Make(F).item' ; visit_lhs : unit -> Hax_engine__Ast.Make(F).lhs -> Hax_engine__Ast.Make(F).lhs ; visit_list : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.list -> 'a Base.list ; visit_literal : unit -> Ast.literal -> Ast.literal ; visit_local_ident : unit -> Ast.local_ident -> Ast.local_ident ; visit_loop_kind : unit -> Hax_engine__Ast.Make(F).loop_kind -> Hax_engine__Ast.Make(F).loop_kind ; visit_loop_state : unit -> Hax_engine__Ast.Make(F).loop_state -> Hax_engine__Ast.Make(F).loop_state ; visit_modul : unit -> Hax_engine__Ast.Make(F).item Prelude.list -> Hax_engine__Ast.Make(F).item Prelude.list ; visit_mutability : 'mut_witness. (unit -> 'mut_witness -> 'mut_witness) -> unit -> 'mut_witness Ast.mutability -> 'mut_witness Ast.mutability ; visit_option : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.option -> 'a Base.option ; visit_param : unit -> Hax_engine__Ast.Make(F).param -> Hax_engine__Ast.Make(F).param ; visit_pat : unit -> Hax_engine__Ast.Make(F).pat -> Hax_engine__Ast.Make(F).pat ; visit_pat' : unit -> Hax_engine__Ast.Make(F).pat' -> Hax_engine__Ast.Make(F).pat' ; visit_prim___tuple_2 : 't0 't1. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> unit -> ('t0 * 't1) -> 't0 * 't1 ; visit_prim___tuple_3 : 't0 't1 't2. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> unit -> ('t0 * 't1 * 't2) -> 't0 * 't1 * 't2 ; visit_prim___tuple_4 : 't0 't1 't2 't3. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> (unit -> 't3 -> 't3) -> unit -> ('t0 * 't1 * 't2 * 't3) -> 't0 * 't1 * 't2 * 't3 ; visit_projection_predicate : unit -> Hax_engine__Ast.Make(F).projection_predicate -> Hax_engine__Ast.Make(F).projection_predicate ; visit_quote : unit -> Hax_engine__Ast.Make(F).quote -> Hax_engine__Ast.Make(F).quote ; visit_safety_kind : unit -> Hax_engine__Ast.Make(F).safety_kind -> Hax_engine__Ast.Make(F).safety_kind ; visit_span : unit -> Ast.span -> Ast.span ; visit_string : unit -> Base.string -> Base.string ; visit_supported_monads : unit -> Hax_engine__Ast.Make(F).supported_monads -> Hax_engine__Ast.Make(F).supported_monads ; visit_todo : unit -> Ast.todo -> Ast.todo ; visit_trait_goal : unit -> Hax_engine__Ast.Make(F).trait_goal -> Hax_engine__Ast.Make(F).trait_goal ; visit_trait_item : unit -> Hax_engine__Ast.Make(F).trait_item -> Hax_engine__Ast.Make(F).trait_item ; visit_trait_item' : unit -> Hax_engine__Ast.Make(F).trait_item' -> Hax_engine__Ast.Make(F).trait_item' ; visit_ty : unit -> Hax_engine__Ast.Make(F).ty -> Hax_engine__Ast.Make(F).ty ; visit_variant : unit -> Hax_engine__Ast.Make(F).variant -> Hax_engine__Ast.Make(F).variant >
val normalize_borrow_mut : < visit_F__arbitrary_lhs : unit -> F.arbitrary_lhs -> F.arbitrary_lhs ; visit_F__as_pattern : unit -> F.as_pattern -> F.as_pattern ; visit_F__block : unit -> F.block -> F.block ; visit_F__break : unit -> F.break -> F.break ; visit_F__construct_base : unit -> F.construct_base -> F.construct_base ; visit_F__continue : unit -> F.continue -> F.continue ; visit_F__dyn : unit -> F.dyn -> F.dyn ; visit_F__early_exit : unit -> F.early_exit -> F.early_exit ; visit_F__for_index_loop : unit -> F.for_index_loop -> F.for_index_loop ; visit_F__for_loop : unit -> F.for_loop -> F.for_loop ; visit_F__lifetime : unit -> F.lifetime -> F.lifetime ; visit_F__loop : unit -> F.loop -> F.loop ; visit_F__macro : unit -> F.macro -> F.macro ; visit_F__match_guard : unit -> F.match_guard -> F.match_guard ; visit_F__monadic_action : unit -> F.monadic_action -> F.monadic_action ; visit_F__monadic_binding : unit -> F.monadic_binding -> F.monadic_binding ; visit_F__mutable_pointer : unit -> F.mutable_pointer -> F.mutable_pointer ; visit_F__mutable_reference : unit -> F.mutable_reference -> F.mutable_reference ; visit_F__mutable_variable : unit -> F.mutable_variable -> F.mutable_variable ; visit_F__nontrivial_lhs : unit -> F.nontrivial_lhs -> F.nontrivial_lhs ; visit_F__question_mark : unit -> F.question_mark -> F.question_mark ; visit_F__raw_pointer : unit -> F.raw_pointer -> F.raw_pointer ; visit_F__reference : unit -> F.reference -> F.reference ; visit_F__slice : unit -> F.slice -> F.slice ; visit_F__state_passing_loop : unit -> F.state_passing_loop -> F.state_passing_loop ; visit_F__trait_item_default : unit -> F.trait_item_default -> F.trait_item_default ; visit_F__unsafe : unit -> F.unsafe -> F.unsafe ; visit_F__while_loop : unit -> F.while_loop -> F.while_loop ; visit_Local_ident__t : unit -> Local_ident.t -> Local_ident.t ; visit_arm : unit -> Hax_engine__Ast.Make(F).arm -> Hax_engine__Ast.Make(F).arm ; visit_arm' : unit -> Hax_engine__Ast.Make(F).arm' -> Hax_engine__Ast.Make(F).arm' ; visit_attr : unit -> Ast.attr -> Ast.attr ; visit_attrs : unit -> Ast.attrs -> Ast.attrs ; visit_binding_mode : unit -> Hax_engine__Ast.Make(F).binding_mode -> Hax_engine__Ast.Make(F).binding_mode ; visit_bool : unit -> Base.bool -> Base.bool ; visit_borrow_kind : unit -> Hax_engine__Ast.Make(F).borrow_kind -> Hax_engine__Ast.Make(F).borrow_kind ; visit_char : unit -> Base.char -> Base.char ; visit_concrete_ident : unit -> Ast.concrete_ident -> Ast.concrete_ident ; visit_dyn_trait_goal : unit -> Hax_engine__Ast.Make(F).dyn_trait_goal -> Hax_engine__Ast.Make(F).dyn_trait_goal ; visit_expr : unit -> Hax_engine__Ast.Make(F).expr -> Hax_engine__Ast.Make(F).expr ; visit_expr' : unit -> Hax_engine__Ast.Make(F).expr' -> Hax_engine__Ast.Make(F).expr' ; visit_field_pat : unit -> Hax_engine__Ast.Make(F).field_pat -> Hax_engine__Ast.Make(F).field_pat ; visit_float_kind : unit -> Ast.float_kind -> Ast.float_kind ; visit_generic_constraint : unit -> Hax_engine__Ast.Make(F).generic_constraint -> Hax_engine__Ast.Make(F).generic_constraint ; visit_generic_param : unit -> Hax_engine__Ast.Make(F).generic_param -> Hax_engine__Ast.Make(F).generic_param ; visit_generic_param_kind : unit -> Hax_engine__Ast.Make(F).generic_param_kind -> Hax_engine__Ast.Make(F).generic_param_kind ; visit_generic_value : unit -> Hax_engine__Ast.Make(F).generic_value -> Hax_engine__Ast.Make(F).generic_value ; visit_generics : unit -> Hax_engine__Ast.Make(F).generics -> Hax_engine__Ast.Make(F).generics ; visit_global_ident : unit -> Ast.global_ident -> Ast.global_ident ; visit_guard : unit -> Hax_engine__Ast.Make(F).guard -> Hax_engine__Ast.Make(F).guard ; visit_guard' : unit -> Hax_engine__Ast.Make(F).guard' -> Hax_engine__Ast.Make(F).guard' ; visit_impl_expr : unit -> Hax_engine__Ast.Make(F).impl_expr -> Hax_engine__Ast.Make(F).impl_expr ; visit_impl_expr_kind : unit -> Hax_engine__Ast.Make(F).impl_expr_kind -> Hax_engine__Ast.Make(F).impl_expr_kind ; visit_impl_ident : unit -> Hax_engine__Ast.Make(F).impl_ident -> Hax_engine__Ast.Make(F).impl_ident ; visit_impl_item : unit -> Hax_engine__Ast.Make(F).impl_item -> Hax_engine__Ast.Make(F).impl_item ; visit_impl_item' : unit -> Hax_engine__Ast.Make(F).impl_item' -> Hax_engine__Ast.Make(F).impl_item' ; visit_int_kind : unit -> Ast.int_kind -> Ast.int_kind ; visit_item : unit -> Hax_engine__Ast.Make(F).item -> Hax_engine__Ast.Make(F).item ; visit_item' : unit -> Hax_engine__Ast.Make(F).item' -> Hax_engine__Ast.Make(F).item' ; visit_lhs : unit -> Hax_engine__Ast.Make(F).lhs -> Hax_engine__Ast.Make(F).lhs ; visit_list : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.list -> 'a Base.list ; visit_literal : unit -> Ast.literal -> Ast.literal ; visit_local_ident : unit -> Ast.local_ident -> Ast.local_ident ; visit_loop_kind : unit -> Hax_engine__Ast.Make(F).loop_kind -> Hax_engine__Ast.Make(F).loop_kind ; visit_loop_state : unit -> Hax_engine__Ast.Make(F).loop_state -> Hax_engine__Ast.Make(F).loop_state ; visit_modul : unit -> Hax_engine__Ast.Make(F).item Prelude.list -> Hax_engine__Ast.Make(F).item Prelude.list ; visit_mutability : 'mut_witness. (unit -> 'mut_witness -> 'mut_witness) -> unit -> 'mut_witness Ast.mutability -> 'mut_witness Ast.mutability ; visit_option : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.option -> 'a Base.option ; visit_param : unit -> Hax_engine__Ast.Make(F).param -> Hax_engine__Ast.Make(F).param ; visit_pat : unit -> Hax_engine__Ast.Make(F).pat -> Hax_engine__Ast.Make(F).pat ; visit_pat' : unit -> Hax_engine__Ast.Make(F).pat' -> Hax_engine__Ast.Make(F).pat' ; visit_prim___tuple_2 : 't0 't1. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> unit -> ('t0 * 't1) -> 't0 * 't1 ; visit_prim___tuple_3 : 't0 't1 't2. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> unit -> ('t0 * 't1 * 't2) -> 't0 * 't1 * 't2 ; visit_prim___tuple_4 : 't0 't1 't2 't3. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> (unit -> 't3 -> 't3) -> unit -> ('t0 * 't1 * 't2 * 't3) -> 't0 * 't1 * 't2 * 't3 ; visit_projection_predicate : unit -> Hax_engine__Ast.Make(F).projection_predicate -> Hax_engine__Ast.Make(F).projection_predicate ; visit_quote : unit -> Hax_engine__Ast.Make(F).quote -> Hax_engine__Ast.Make(F).quote ; visit_safety_kind : unit -> Hax_engine__Ast.Make(F).safety_kind -> Hax_engine__Ast.Make(F).safety_kind ; visit_span : unit -> Ast.span -> Ast.span ; visit_string : unit -> Base.string -> Base.string ; visit_supported_monads : unit -> Hax_engine__Ast.Make(F).supported_monads -> Hax_engine__Ast.Make(F).supported_monads ; visit_todo : unit -> Ast.todo -> Ast.todo ; visit_trait_goal : unit -> Hax_engine__Ast.Make(F).trait_goal -> Hax_engine__Ast.Make(F).trait_goal ; visit_trait_item : unit -> Hax_engine__Ast.Make(F).trait_item -> Hax_engine__Ast.Make(F).trait_item ; visit_trait_item' : unit -> Hax_engine__Ast.Make(F).trait_item' -> Hax_engine__Ast.Make(F).trait_item' ; visit_ty : unit -> Hax_engine__Ast.Make(F).ty -> Hax_engine__Ast.Make(F).ty ; visit_variant : unit -> Hax_engine__Ast.Make(F).variant -> Hax_engine__Ast.Make(F).variant >
val rename_generic_constraints : < visit_F__arbitrary_lhs : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.arbitrary_lhs -> F.arbitrary_lhs ; visit_F__as_pattern : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.as_pattern -> F.as_pattern ; visit_F__block : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.block -> F.block ; visit_F__break : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.break -> F.break ; visit_F__construct_base : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.construct_base -> F.construct_base ; visit_F__continue : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.continue -> F.continue ; visit_F__dyn : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.dyn -> F.dyn ; visit_F__early_exit : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.early_exit -> F.early_exit ; visit_F__for_index_loop : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.for_index_loop -> F.for_index_loop ; visit_F__for_loop : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.for_loop -> F.for_loop ; visit_F__lifetime : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.lifetime -> F.lifetime ; visit_F__loop : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.loop -> F.loop ; visit_F__macro : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.macro -> F.macro ; visit_F__match_guard : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.match_guard -> F.match_guard ; visit_F__monadic_action : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.monadic_action -> F.monadic_action ; visit_F__monadic_binding : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.monadic_binding -> F.monadic_binding ; visit_F__mutable_pointer : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.mutable_pointer -> F.mutable_pointer ; visit_F__mutable_reference : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.mutable_reference -> F.mutable_reference ; visit_F__mutable_variable : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.mutable_variable -> F.mutable_variable ; visit_F__nontrivial_lhs : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.nontrivial_lhs -> F.nontrivial_lhs ; visit_F__question_mark : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.question_mark -> F.question_mark ; visit_F__raw_pointer : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.raw_pointer -> F.raw_pointer ; visit_F__reference : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.reference -> F.reference ; visit_F__slice : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.slice -> F.slice ; visit_F__state_passing_loop : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.state_passing_loop -> F.state_passing_loop ; visit_F__trait_item_default : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.trait_item_default -> F.trait_item_default ; visit_F__unsafe : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.unsafe -> F.unsafe ; visit_F__while_loop : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> F.while_loop -> F.while_loop ; visit_Local_ident__t : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Local_ident.t -> Local_ident.t ; visit_arm : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).arm -> Hax_engine__Ast.Make(F).arm ; visit_arm' : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).arm' -> Hax_engine__Ast.Make(F).arm' ; visit_attr : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Ast.attr -> Ast.attr ; visit_attrs : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Ast.attrs -> Ast.attrs ; visit_binding_mode : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).binding_mode -> Hax_engine__Ast.Make(F).binding_mode ; visit_bool : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Base.bool -> Base.bool ; visit_borrow_kind : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).borrow_kind -> Hax_engine__Ast.Make(F).borrow_kind ; visit_char : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Base.char -> Base.char ; visit_concrete_ident : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Ast.concrete_ident -> Ast.concrete_ident ; visit_dyn_trait_goal : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).dyn_trait_goal -> Hax_engine__Ast.Make(F).dyn_trait_goal ; visit_expr : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).expr -> Hax_engine__Ast.Make(F).expr ; visit_expr' : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).expr' -> Hax_engine__Ast.Make(F).expr' ; visit_field_pat : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).field_pat -> Hax_engine__Ast.Make(F).field_pat ; visit_float_kind : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Ast.float_kind -> Ast.float_kind ; visit_generic_constraint : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).generic_constraint -> Hax_engine__Ast.Make(F).generic_constraint ; visit_generic_param : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).generic_param -> Hax_engine__Ast.Make(F).generic_param ; visit_generic_param_kind : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).generic_param_kind -> Hax_engine__Ast.Make(F).generic_param_kind ; visit_generic_value : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).generic_value -> Hax_engine__Ast.Make(F).generic_value ; visit_generics : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).generics -> Hax_engine__Ast.Make(F).generics ; visit_global_ident : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Ast.global_ident -> Ast.global_ident ; visit_guard : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).guard -> Hax_engine__Ast.Make(F).guard ; visit_guard' : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).guard' -> Hax_engine__Ast.Make(F).guard' ; visit_impl_expr : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).impl_expr -> Hax_engine__Ast.Make(F).impl_expr ; visit_impl_expr_kind : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).impl_expr_kind -> Hax_engine__Ast.Make(F).impl_expr_kind ; visit_impl_ident : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).impl_ident -> Hax_engine__Ast.Make(F).impl_ident ; visit_impl_item : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).impl_item -> Hax_engine__Ast.Make(F).impl_item ; visit_impl_item' : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).impl_item' -> Hax_engine__Ast.Make(F).impl_item' ; visit_int_kind : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Ast.int_kind -> Ast.int_kind ; visit_item : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).item -> Hax_engine__Ast.Make(F).item ; visit_item' : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).item' -> Hax_engine__Ast.Make(F).item' ; visit_lhs : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).lhs -> Hax_engine__Ast.Make(F).lhs ; visit_list : 'a. ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 'a -> 'a) -> (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 'a Base.list -> 'a Base.list ; visit_literal : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Ast.literal -> Ast.literal ; visit_local_ident : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Ast.local_ident -> Ast.local_ident ; visit_loop_kind : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).loop_kind -> Hax_engine__Ast.Make(F).loop_kind ; visit_loop_state : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).loop_state -> Hax_engine__Ast.Make(F).loop_state ; visit_modul : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).item Prelude.list -> Hax_engine__Ast.Make(F).item Prelude.list ; visit_mutability : 'mut_witness. ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 'mut_witness -> 'mut_witness) -> (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 'mut_witness Ast.mutability -> 'mut_witness Ast.mutability ; visit_option : 'a. ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 'a -> 'a) -> (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 'a Base.option -> 'a Base.option ; visit_param : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).param -> Hax_engine__Ast.Make(F).param ; visit_pat : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).pat -> Hax_engine__Ast.Make(F).pat ; visit_pat' : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).pat' -> Hax_engine__Ast.Make(F).pat' ; visit_prim___tuple_2 : 't0 't1. ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 't0 -> 't0) -> ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 't1 -> 't1) -> (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> ('t0 * 't1) -> 't0 * 't1 ; visit_prim___tuple_3 : 't0 't1 't2. ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 't0 -> 't0) -> ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 't1 -> 't1) -> ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 't2 -> 't2) -> (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> ('t0 * 't1 * 't2) -> 't0 * 't1 * 't2 ; visit_prim___tuple_4 : 't0 't1 't2 't3. ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 't0 -> 't0) -> ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 't1 -> 't1) -> ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 't2 -> 't2) -> ((Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> 't3 -> 't3) -> (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> ('t0 * 't1 * 't2 * 't3) -> 't0 * 't1 * 't2 * 't3 ; visit_projection_predicate : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).projection_predicate -> Hax_engine__Ast.Make(F).projection_predicate ; visit_quote : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).quote -> Hax_engine__Ast.Make(F).quote ; visit_safety_kind : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).safety_kind -> Hax_engine__Ast.Make(F).safety_kind ; visit_span : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Ast.span -> Ast.span ; visit_string : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Base.string -> Base.string ; visit_supported_monads : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).supported_monads -> Hax_engine__Ast.Make(F).supported_monads ; visit_todo : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Ast.todo -> Ast.todo ; visit_trait_goal : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).trait_goal -> Hax_engine__Ast.Make(F).trait_goal ; visit_trait_item : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).trait_item -> Hax_engine__Ast.Make(F).trait_item ; visit_trait_item' : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).trait_item' -> Hax_engine__Ast.Make(F).trait_item' ; visit_ty : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).ty -> Hax_engine__Ast.Make(F).ty ; visit_variant : (Prelude.bool * (Prelude.string, Prelude.string) Hax_engine.Prelude.Hashtbl.t) -> Hax_engine__Ast.Make(F).variant -> Hax_engine__Ast.Make(F).variant >

Rename impl expressions variables. By default, they are big and unique identifiers, after this function, they are renamed into `iN` where `N` is a short local unique identifier.

val drop_bodies : < visit_F__arbitrary_lhs : unit -> F.arbitrary_lhs -> F.arbitrary_lhs ; visit_F__as_pattern : unit -> F.as_pattern -> F.as_pattern ; visit_F__block : unit -> F.block -> F.block ; visit_F__break : unit -> F.break -> F.break ; visit_F__construct_base : unit -> F.construct_base -> F.construct_base ; visit_F__continue : unit -> F.continue -> F.continue ; visit_F__dyn : unit -> F.dyn -> F.dyn ; visit_F__early_exit : unit -> F.early_exit -> F.early_exit ; visit_F__for_index_loop : unit -> F.for_index_loop -> F.for_index_loop ; visit_F__for_loop : unit -> F.for_loop -> F.for_loop ; visit_F__lifetime : unit -> F.lifetime -> F.lifetime ; visit_F__loop : unit -> F.loop -> F.loop ; visit_F__macro : unit -> F.macro -> F.macro ; visit_F__match_guard : unit -> F.match_guard -> F.match_guard ; visit_F__monadic_action : unit -> F.monadic_action -> F.monadic_action ; visit_F__monadic_binding : unit -> F.monadic_binding -> F.monadic_binding ; visit_F__mutable_pointer : unit -> F.mutable_pointer -> F.mutable_pointer ; visit_F__mutable_reference : unit -> F.mutable_reference -> F.mutable_reference ; visit_F__mutable_variable : unit -> F.mutable_variable -> F.mutable_variable ; visit_F__nontrivial_lhs : unit -> F.nontrivial_lhs -> F.nontrivial_lhs ; visit_F__question_mark : unit -> F.question_mark -> F.question_mark ; visit_F__raw_pointer : unit -> F.raw_pointer -> F.raw_pointer ; visit_F__reference : unit -> F.reference -> F.reference ; visit_F__slice : unit -> F.slice -> F.slice ; visit_F__state_passing_loop : unit -> F.state_passing_loop -> F.state_passing_loop ; visit_F__trait_item_default : unit -> F.trait_item_default -> F.trait_item_default ; visit_F__unsafe : unit -> F.unsafe -> F.unsafe ; visit_F__while_loop : unit -> F.while_loop -> F.while_loop ; visit_Local_ident__t : unit -> Local_ident.t -> Local_ident.t ; visit_arm : unit -> Hax_engine__Ast.Make(F).arm -> Hax_engine__Ast.Make(F).arm ; visit_arm' : unit -> Hax_engine__Ast.Make(F).arm' -> Hax_engine__Ast.Make(F).arm' ; visit_attr : unit -> Ast.attr -> Ast.attr ; visit_attrs : unit -> Ast.attrs -> Ast.attrs ; visit_binding_mode : unit -> Hax_engine__Ast.Make(F).binding_mode -> Hax_engine__Ast.Make(F).binding_mode ; visit_bool : unit -> Base.bool -> Base.bool ; visit_borrow_kind : unit -> Hax_engine__Ast.Make(F).borrow_kind -> Hax_engine__Ast.Make(F).borrow_kind ; visit_char : unit -> Base.char -> Base.char ; visit_concrete_ident : unit -> Ast.concrete_ident -> Ast.concrete_ident ; visit_dyn_trait_goal : unit -> Hax_engine__Ast.Make(F).dyn_trait_goal -> Hax_engine__Ast.Make(F).dyn_trait_goal ; visit_expr : unit -> Hax_engine__Ast.Make(F).expr -> Hax_engine__Ast.Make(F).expr ; visit_expr' : unit -> Hax_engine__Ast.Make(F).expr' -> Hax_engine__Ast.Make(F).expr' ; visit_field_pat : unit -> Hax_engine__Ast.Make(F).field_pat -> Hax_engine__Ast.Make(F).field_pat ; visit_float_kind : unit -> Ast.float_kind -> Ast.float_kind ; visit_generic_constraint : unit -> Hax_engine__Ast.Make(F).generic_constraint -> Hax_engine__Ast.Make(F).generic_constraint ; visit_generic_param : unit -> Hax_engine__Ast.Make(F).generic_param -> Hax_engine__Ast.Make(F).generic_param ; visit_generic_param_kind : unit -> Hax_engine__Ast.Make(F).generic_param_kind -> Hax_engine__Ast.Make(F).generic_param_kind ; visit_generic_value : unit -> Hax_engine__Ast.Make(F).generic_value -> Hax_engine__Ast.Make(F).generic_value ; visit_generics : unit -> Hax_engine__Ast.Make(F).generics -> Hax_engine__Ast.Make(F).generics ; visit_global_ident : unit -> Ast.global_ident -> Ast.global_ident ; visit_guard : unit -> Hax_engine__Ast.Make(F).guard -> Hax_engine__Ast.Make(F).guard ; visit_guard' : unit -> Hax_engine__Ast.Make(F).guard' -> Hax_engine__Ast.Make(F).guard' ; visit_impl_expr : unit -> Hax_engine__Ast.Make(F).impl_expr -> Hax_engine__Ast.Make(F).impl_expr ; visit_impl_expr_kind : unit -> Hax_engine__Ast.Make(F).impl_expr_kind -> Hax_engine__Ast.Make(F).impl_expr_kind ; visit_impl_ident : unit -> Hax_engine__Ast.Make(F).impl_ident -> Hax_engine__Ast.Make(F).impl_ident ; visit_impl_item : unit -> Hax_engine__Ast.Make(F).impl_item -> Hax_engine__Ast.Make(F).impl_item ; visit_impl_item' : unit -> Hax_engine__Ast.Make(F).impl_item' -> Hax_engine__Ast.Make(F).impl_item' ; visit_int_kind : unit -> Ast.int_kind -> Ast.int_kind ; visit_item : unit -> Hax_engine__Ast.Make(F).item -> Hax_engine__Ast.Make(F).item ; visit_item' : unit -> Hax_engine__Ast.Make(F).item' -> Hax_engine__Ast.Make(F).item' ; visit_lhs : unit -> Hax_engine__Ast.Make(F).lhs -> Hax_engine__Ast.Make(F).lhs ; visit_list : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.list -> 'a Base.list ; visit_literal : unit -> Ast.literal -> Ast.literal ; visit_local_ident : unit -> Ast.local_ident -> Ast.local_ident ; visit_loop_kind : unit -> Hax_engine__Ast.Make(F).loop_kind -> Hax_engine__Ast.Make(F).loop_kind ; visit_loop_state : unit -> Hax_engine__Ast.Make(F).loop_state -> Hax_engine__Ast.Make(F).loop_state ; visit_modul : unit -> Hax_engine__Ast.Make(F).item Prelude.list -> Hax_engine__Ast.Make(F).item Prelude.list ; visit_mutability : 'mut_witness. (unit -> 'mut_witness -> 'mut_witness) -> unit -> 'mut_witness Ast.mutability -> 'mut_witness Ast.mutability ; visit_option : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.option -> 'a Base.option ; visit_param : unit -> Hax_engine__Ast.Make(F).param -> Hax_engine__Ast.Make(F).param ; visit_pat : unit -> Hax_engine__Ast.Make(F).pat -> Hax_engine__Ast.Make(F).pat ; visit_pat' : unit -> Hax_engine__Ast.Make(F).pat' -> Hax_engine__Ast.Make(F).pat' ; visit_prim___tuple_2 : 't0 't1. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> unit -> ('t0 * 't1) -> 't0 * 't1 ; visit_prim___tuple_3 : 't0 't1 't2. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> unit -> ('t0 * 't1 * 't2) -> 't0 * 't1 * 't2 ; visit_prim___tuple_4 : 't0 't1 't2 't3. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> (unit -> 't3 -> 't3) -> unit -> ('t0 * 't1 * 't2 * 't3) -> 't0 * 't1 * 't2 * 't3 ; visit_projection_predicate : unit -> Hax_engine__Ast.Make(F).projection_predicate -> Hax_engine__Ast.Make(F).projection_predicate ; visit_quote : unit -> Hax_engine__Ast.Make(F).quote -> Hax_engine__Ast.Make(F).quote ; visit_safety_kind : unit -> Hax_engine__Ast.Make(F).safety_kind -> Hax_engine__Ast.Make(F).safety_kind ; visit_span : unit -> Ast.span -> Ast.span ; visit_string : unit -> Base.string -> Base.string ; visit_supported_monads : unit -> Hax_engine__Ast.Make(F).supported_monads -> Hax_engine__Ast.Make(F).supported_monads ; visit_todo : unit -> Ast.todo -> Ast.todo ; visit_trait_goal : unit -> Hax_engine__Ast.Make(F).trait_goal -> Hax_engine__Ast.Make(F).trait_goal ; visit_trait_item : unit -> Hax_engine__Ast.Make(F).trait_item -> Hax_engine__Ast.Make(F).trait_item ; visit_trait_item' : unit -> Hax_engine__Ast.Make(F).trait_item' -> Hax_engine__Ast.Make(F).trait_item' ; visit_ty : unit -> Hax_engine__Ast.Make(F).ty -> Hax_engine__Ast.Make(F).ty ; visit_variant : unit -> Hax_engine__Ast.Make(F).variant -> Hax_engine__Ast.Make(F).variant >
val replace_local_variables : (Ast.local_ident, AST.expr, 'b) Hax_engine.Prelude.Map.t -> < visit_F__arbitrary_lhs : unit -> F.arbitrary_lhs -> F.arbitrary_lhs ; visit_F__as_pattern : unit -> F.as_pattern -> F.as_pattern ; visit_F__block : unit -> F.block -> F.block ; visit_F__break : unit -> F.break -> F.break ; visit_F__construct_base : unit -> F.construct_base -> F.construct_base ; visit_F__continue : unit -> F.continue -> F.continue ; visit_F__dyn : unit -> F.dyn -> F.dyn ; visit_F__early_exit : unit -> F.early_exit -> F.early_exit ; visit_F__for_index_loop : unit -> F.for_index_loop -> F.for_index_loop ; visit_F__for_loop : unit -> F.for_loop -> F.for_loop ; visit_F__lifetime : unit -> F.lifetime -> F.lifetime ; visit_F__loop : unit -> F.loop -> F.loop ; visit_F__macro : unit -> F.macro -> F.macro ; visit_F__match_guard : unit -> F.match_guard -> F.match_guard ; visit_F__monadic_action : unit -> F.monadic_action -> F.monadic_action ; visit_F__monadic_binding : unit -> F.monadic_binding -> F.monadic_binding ; visit_F__mutable_pointer : unit -> F.mutable_pointer -> F.mutable_pointer ; visit_F__mutable_reference : unit -> F.mutable_reference -> F.mutable_reference ; visit_F__mutable_variable : unit -> F.mutable_variable -> F.mutable_variable ; visit_F__nontrivial_lhs : unit -> F.nontrivial_lhs -> F.nontrivial_lhs ; visit_F__question_mark : unit -> F.question_mark -> F.question_mark ; visit_F__raw_pointer : unit -> F.raw_pointer -> F.raw_pointer ; visit_F__reference : unit -> F.reference -> F.reference ; visit_F__slice : unit -> F.slice -> F.slice ; visit_F__state_passing_loop : unit -> F.state_passing_loop -> F.state_passing_loop ; visit_F__trait_item_default : unit -> F.trait_item_default -> F.trait_item_default ; visit_F__unsafe : unit -> F.unsafe -> F.unsafe ; visit_F__while_loop : unit -> F.while_loop -> F.while_loop ; visit_Local_ident__t : unit -> Local_ident.t -> Local_ident.t ; visit_arm : unit -> Hax_engine__Ast.Make(F).arm -> Hax_engine__Ast.Make(F).arm ; visit_arm' : unit -> Hax_engine__Ast.Make(F).arm' -> Hax_engine__Ast.Make(F).arm' ; visit_attr : unit -> Ast.attr -> Ast.attr ; visit_attrs : unit -> Ast.attrs -> Ast.attrs ; visit_binding_mode : unit -> Hax_engine__Ast.Make(F).binding_mode -> Hax_engine__Ast.Make(F).binding_mode ; visit_bool : unit -> Base.bool -> Base.bool ; visit_borrow_kind : unit -> Hax_engine__Ast.Make(F).borrow_kind -> Hax_engine__Ast.Make(F).borrow_kind ; visit_char : unit -> Base.char -> Base.char ; visit_concrete_ident : unit -> Ast.concrete_ident -> Ast.concrete_ident ; visit_dyn_trait_goal : unit -> Hax_engine__Ast.Make(F).dyn_trait_goal -> Hax_engine__Ast.Make(F).dyn_trait_goal ; visit_expr : unit -> Hax_engine__Ast.Make(F).expr -> Hax_engine__Ast.Make(F).expr ; visit_expr' : unit -> Hax_engine__Ast.Make(F).expr' -> Hax_engine__Ast.Make(F).expr' ; visit_field_pat : unit -> Hax_engine__Ast.Make(F).field_pat -> Hax_engine__Ast.Make(F).field_pat ; visit_float_kind : unit -> Ast.float_kind -> Ast.float_kind ; visit_generic_constraint : unit -> Hax_engine__Ast.Make(F).generic_constraint -> Hax_engine__Ast.Make(F).generic_constraint ; visit_generic_param : unit -> Hax_engine__Ast.Make(F).generic_param -> Hax_engine__Ast.Make(F).generic_param ; visit_generic_param_kind : unit -> Hax_engine__Ast.Make(F).generic_param_kind -> Hax_engine__Ast.Make(F).generic_param_kind ; visit_generic_value : unit -> Hax_engine__Ast.Make(F).generic_value -> Hax_engine__Ast.Make(F).generic_value ; visit_generics : unit -> Hax_engine__Ast.Make(F).generics -> Hax_engine__Ast.Make(F).generics ; visit_global_ident : unit -> Ast.global_ident -> Ast.global_ident ; visit_guard : unit -> Hax_engine__Ast.Make(F).guard -> Hax_engine__Ast.Make(F).guard ; visit_guard' : unit -> Hax_engine__Ast.Make(F).guard' -> Hax_engine__Ast.Make(F).guard' ; visit_impl_expr : unit -> Hax_engine__Ast.Make(F).impl_expr -> Hax_engine__Ast.Make(F).impl_expr ; visit_impl_expr_kind : unit -> Hax_engine__Ast.Make(F).impl_expr_kind -> Hax_engine__Ast.Make(F).impl_expr_kind ; visit_impl_ident : unit -> Hax_engine__Ast.Make(F).impl_ident -> Hax_engine__Ast.Make(F).impl_ident ; visit_impl_item : unit -> Hax_engine__Ast.Make(F).impl_item -> Hax_engine__Ast.Make(F).impl_item ; visit_impl_item' : unit -> Hax_engine__Ast.Make(F).impl_item' -> Hax_engine__Ast.Make(F).impl_item' ; visit_int_kind : unit -> Ast.int_kind -> Ast.int_kind ; visit_item : unit -> Hax_engine__Ast.Make(F).item -> Hax_engine__Ast.Make(F).item ; visit_item' : unit -> Hax_engine__Ast.Make(F).item' -> Hax_engine__Ast.Make(F).item' ; visit_lhs : unit -> Hax_engine__Ast.Make(F).lhs -> Hax_engine__Ast.Make(F).lhs ; visit_list : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.list -> 'a Base.list ; visit_literal : unit -> Ast.literal -> Ast.literal ; visit_local_ident : unit -> Ast.local_ident -> Ast.local_ident ; visit_loop_kind : unit -> Hax_engine__Ast.Make(F).loop_kind -> Hax_engine__Ast.Make(F).loop_kind ; visit_loop_state : unit -> Hax_engine__Ast.Make(F).loop_state -> Hax_engine__Ast.Make(F).loop_state ; visit_modul : unit -> Hax_engine__Ast.Make(F).item Prelude.list -> Hax_engine__Ast.Make(F).item Prelude.list ; visit_mutability : 'mut_witness. (unit -> 'mut_witness -> 'mut_witness) -> unit -> 'mut_witness Ast.mutability -> 'mut_witness Ast.mutability ; visit_option : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.option -> 'a Base.option ; visit_param : unit -> Hax_engine__Ast.Make(F).param -> Hax_engine__Ast.Make(F).param ; visit_pat : unit -> Hax_engine__Ast.Make(F).pat -> Hax_engine__Ast.Make(F).pat ; visit_pat' : unit -> Hax_engine__Ast.Make(F).pat' -> Hax_engine__Ast.Make(F).pat' ; visit_prim___tuple_2 : 't0 't1. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> unit -> ('t0 * 't1) -> 't0 * 't1 ; visit_prim___tuple_3 : 't0 't1 't2. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> unit -> ('t0 * 't1 * 't2) -> 't0 * 't1 * 't2 ; visit_prim___tuple_4 : 't0 't1 't2 't3. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> (unit -> 't3 -> 't3) -> unit -> ('t0 * 't1 * 't2 * 't3) -> 't0 * 't1 * 't2 * 't3 ; visit_projection_predicate : unit -> Hax_engine__Ast.Make(F).projection_predicate -> Hax_engine__Ast.Make(F).projection_predicate ; visit_quote : unit -> Hax_engine__Ast.Make(F).quote -> Hax_engine__Ast.Make(F).quote ; visit_safety_kind : unit -> Hax_engine__Ast.Make(F).safety_kind -> Hax_engine__Ast.Make(F).safety_kind ; visit_span : unit -> Ast.span -> Ast.span ; visit_string : unit -> Base.string -> Base.string ; visit_supported_monads : unit -> Hax_engine__Ast.Make(F).supported_monads -> Hax_engine__Ast.Make(F).supported_monads ; visit_todo : unit -> Ast.todo -> Ast.todo ; visit_trait_goal : unit -> Hax_engine__Ast.Make(F).trait_goal -> Hax_engine__Ast.Make(F).trait_goal ; visit_trait_item : unit -> Hax_engine__Ast.Make(F).trait_item -> Hax_engine__Ast.Make(F).trait_item ; visit_trait_item' : unit -> Hax_engine__Ast.Make(F).trait_item' -> Hax_engine__Ast.Make(F).trait_item' ; visit_ty : unit -> Hax_engine__Ast.Make(F).ty -> Hax_engine__Ast.Make(F).ty ; visit_variant : unit -> Hax_engine__Ast.Make(F).variant -> Hax_engine__Ast.Make(F).variant >
val replace_local_variable : Ast.local_ident -> AST.expr -> < visit_F__arbitrary_lhs : unit -> F.arbitrary_lhs -> F.arbitrary_lhs ; visit_F__as_pattern : unit -> F.as_pattern -> F.as_pattern ; visit_F__block : unit -> F.block -> F.block ; visit_F__break : unit -> F.break -> F.break ; visit_F__construct_base : unit -> F.construct_base -> F.construct_base ; visit_F__continue : unit -> F.continue -> F.continue ; visit_F__dyn : unit -> F.dyn -> F.dyn ; visit_F__early_exit : unit -> F.early_exit -> F.early_exit ; visit_F__for_index_loop : unit -> F.for_index_loop -> F.for_index_loop ; visit_F__for_loop : unit -> F.for_loop -> F.for_loop ; visit_F__lifetime : unit -> F.lifetime -> F.lifetime ; visit_F__loop : unit -> F.loop -> F.loop ; visit_F__macro : unit -> F.macro -> F.macro ; visit_F__match_guard : unit -> F.match_guard -> F.match_guard ; visit_F__monadic_action : unit -> F.monadic_action -> F.monadic_action ; visit_F__monadic_binding : unit -> F.monadic_binding -> F.monadic_binding ; visit_F__mutable_pointer : unit -> F.mutable_pointer -> F.mutable_pointer ; visit_F__mutable_reference : unit -> F.mutable_reference -> F.mutable_reference ; visit_F__mutable_variable : unit -> F.mutable_variable -> F.mutable_variable ; visit_F__nontrivial_lhs : unit -> F.nontrivial_lhs -> F.nontrivial_lhs ; visit_F__question_mark : unit -> F.question_mark -> F.question_mark ; visit_F__raw_pointer : unit -> F.raw_pointer -> F.raw_pointer ; visit_F__reference : unit -> F.reference -> F.reference ; visit_F__slice : unit -> F.slice -> F.slice ; visit_F__state_passing_loop : unit -> F.state_passing_loop -> F.state_passing_loop ; visit_F__trait_item_default : unit -> F.trait_item_default -> F.trait_item_default ; visit_F__unsafe : unit -> F.unsafe -> F.unsafe ; visit_F__while_loop : unit -> F.while_loop -> F.while_loop ; visit_Local_ident__t : unit -> Local_ident.t -> Local_ident.t ; visit_arm : unit -> Hax_engine__Ast.Make(F).arm -> Hax_engine__Ast.Make(F).arm ; visit_arm' : unit -> Hax_engine__Ast.Make(F).arm' -> Hax_engine__Ast.Make(F).arm' ; visit_attr : unit -> Ast.attr -> Ast.attr ; visit_attrs : unit -> Ast.attrs -> Ast.attrs ; visit_binding_mode : unit -> Hax_engine__Ast.Make(F).binding_mode -> Hax_engine__Ast.Make(F).binding_mode ; visit_bool : unit -> Base.bool -> Base.bool ; visit_borrow_kind : unit -> Hax_engine__Ast.Make(F).borrow_kind -> Hax_engine__Ast.Make(F).borrow_kind ; visit_char : unit -> Base.char -> Base.char ; visit_concrete_ident : unit -> Ast.concrete_ident -> Ast.concrete_ident ; visit_dyn_trait_goal : unit -> Hax_engine__Ast.Make(F).dyn_trait_goal -> Hax_engine__Ast.Make(F).dyn_trait_goal ; visit_expr : unit -> Hax_engine__Ast.Make(F).expr -> Hax_engine__Ast.Make(F).expr ; visit_expr' : unit -> Hax_engine__Ast.Make(F).expr' -> Hax_engine__Ast.Make(F).expr' ; visit_field_pat : unit -> Hax_engine__Ast.Make(F).field_pat -> Hax_engine__Ast.Make(F).field_pat ; visit_float_kind : unit -> Ast.float_kind -> Ast.float_kind ; visit_generic_constraint : unit -> Hax_engine__Ast.Make(F).generic_constraint -> Hax_engine__Ast.Make(F).generic_constraint ; visit_generic_param : unit -> Hax_engine__Ast.Make(F).generic_param -> Hax_engine__Ast.Make(F).generic_param ; visit_generic_param_kind : unit -> Hax_engine__Ast.Make(F).generic_param_kind -> Hax_engine__Ast.Make(F).generic_param_kind ; visit_generic_value : unit -> Hax_engine__Ast.Make(F).generic_value -> Hax_engine__Ast.Make(F).generic_value ; visit_generics : unit -> Hax_engine__Ast.Make(F).generics -> Hax_engine__Ast.Make(F).generics ; visit_global_ident : unit -> Ast.global_ident -> Ast.global_ident ; visit_guard : unit -> Hax_engine__Ast.Make(F).guard -> Hax_engine__Ast.Make(F).guard ; visit_guard' : unit -> Hax_engine__Ast.Make(F).guard' -> Hax_engine__Ast.Make(F).guard' ; visit_impl_expr : unit -> Hax_engine__Ast.Make(F).impl_expr -> Hax_engine__Ast.Make(F).impl_expr ; visit_impl_expr_kind : unit -> Hax_engine__Ast.Make(F).impl_expr_kind -> Hax_engine__Ast.Make(F).impl_expr_kind ; visit_impl_ident : unit -> Hax_engine__Ast.Make(F).impl_ident -> Hax_engine__Ast.Make(F).impl_ident ; visit_impl_item : unit -> Hax_engine__Ast.Make(F).impl_item -> Hax_engine__Ast.Make(F).impl_item ; visit_impl_item' : unit -> Hax_engine__Ast.Make(F).impl_item' -> Hax_engine__Ast.Make(F).impl_item' ; visit_int_kind : unit -> Ast.int_kind -> Ast.int_kind ; visit_item : unit -> Hax_engine__Ast.Make(F).item -> Hax_engine__Ast.Make(F).item ; visit_item' : unit -> Hax_engine__Ast.Make(F).item' -> Hax_engine__Ast.Make(F).item' ; visit_lhs : unit -> Hax_engine__Ast.Make(F).lhs -> Hax_engine__Ast.Make(F).lhs ; visit_list : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.list -> 'a Base.list ; visit_literal : unit -> Ast.literal -> Ast.literal ; visit_local_ident : unit -> Ast.local_ident -> Ast.local_ident ; visit_loop_kind : unit -> Hax_engine__Ast.Make(F).loop_kind -> Hax_engine__Ast.Make(F).loop_kind ; visit_loop_state : unit -> Hax_engine__Ast.Make(F).loop_state -> Hax_engine__Ast.Make(F).loop_state ; visit_modul : unit -> Hax_engine__Ast.Make(F).item Prelude.list -> Hax_engine__Ast.Make(F).item Prelude.list ; visit_mutability : 'mut_witness. (unit -> 'mut_witness -> 'mut_witness) -> unit -> 'mut_witness Ast.mutability -> 'mut_witness Ast.mutability ; visit_option : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.option -> 'a Base.option ; visit_param : unit -> Hax_engine__Ast.Make(F).param -> Hax_engine__Ast.Make(F).param ; visit_pat : unit -> Hax_engine__Ast.Make(F).pat -> Hax_engine__Ast.Make(F).pat ; visit_pat' : unit -> Hax_engine__Ast.Make(F).pat' -> Hax_engine__Ast.Make(F).pat' ; visit_prim___tuple_2 : 't0 't1. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> unit -> ('t0 * 't1) -> 't0 * 't1 ; visit_prim___tuple_3 : 't0 't1 't2. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> unit -> ('t0 * 't1 * 't2) -> 't0 * 't1 * 't2 ; visit_prim___tuple_4 : 't0 't1 't2 't3. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> (unit -> 't3 -> 't3) -> unit -> ('t0 * 't1 * 't2 * 't3) -> 't0 * 't1 * 't2 * 't3 ; visit_projection_predicate : unit -> Hax_engine__Ast.Make(F).projection_predicate -> Hax_engine__Ast.Make(F).projection_predicate ; visit_quote : unit -> Hax_engine__Ast.Make(F).quote -> Hax_engine__Ast.Make(F).quote ; visit_safety_kind : unit -> Hax_engine__Ast.Make(F).safety_kind -> Hax_engine__Ast.Make(F).safety_kind ; visit_span : unit -> Ast.span -> Ast.span ; visit_string : unit -> Base.string -> Base.string ; visit_supported_monads : unit -> Hax_engine__Ast.Make(F).supported_monads -> Hax_engine__Ast.Make(F).supported_monads ; visit_todo : unit -> Ast.todo -> Ast.todo ; visit_trait_goal : unit -> Hax_engine__Ast.Make(F).trait_goal -> Hax_engine__Ast.Make(F).trait_goal ; visit_trait_item : unit -> Hax_engine__Ast.Make(F).trait_item -> Hax_engine__Ast.Make(F).trait_item ; visit_trait_item' : unit -> Hax_engine__Ast.Make(F).trait_item' -> Hax_engine__Ast.Make(F).trait_item' ; visit_ty : unit -> Hax_engine__Ast.Make(F).ty -> Hax_engine__Ast.Make(F).ty ; visit_variant : unit -> Hax_engine__Ast.Make(F).variant -> Hax_engine__Ast.Make(F).variant >

replace_local_variable var replacement returns a visitor that maps any type of the AST replacing every occurence of the expression LocalVar var by replacement.

val rename_local_idents : (Ast.local_ident -> Ast.local_ident) -> < visit_F__arbitrary_lhs : unit -> F.arbitrary_lhs -> F.arbitrary_lhs ; visit_F__as_pattern : unit -> F.as_pattern -> F.as_pattern ; visit_F__block : unit -> F.block -> F.block ; visit_F__break : unit -> F.break -> F.break ; visit_F__construct_base : unit -> F.construct_base -> F.construct_base ; visit_F__continue : unit -> F.continue -> F.continue ; visit_F__dyn : unit -> F.dyn -> F.dyn ; visit_F__early_exit : unit -> F.early_exit -> F.early_exit ; visit_F__for_index_loop : unit -> F.for_index_loop -> F.for_index_loop ; visit_F__for_loop : unit -> F.for_loop -> F.for_loop ; visit_F__lifetime : unit -> F.lifetime -> F.lifetime ; visit_F__loop : unit -> F.loop -> F.loop ; visit_F__macro : unit -> F.macro -> F.macro ; visit_F__match_guard : unit -> F.match_guard -> F.match_guard ; visit_F__monadic_action : unit -> F.monadic_action -> F.monadic_action ; visit_F__monadic_binding : unit -> F.monadic_binding -> F.monadic_binding ; visit_F__mutable_pointer : unit -> F.mutable_pointer -> F.mutable_pointer ; visit_F__mutable_reference : unit -> F.mutable_reference -> F.mutable_reference ; visit_F__mutable_variable : unit -> F.mutable_variable -> F.mutable_variable ; visit_F__nontrivial_lhs : unit -> F.nontrivial_lhs -> F.nontrivial_lhs ; visit_F__question_mark : unit -> F.question_mark -> F.question_mark ; visit_F__raw_pointer : unit -> F.raw_pointer -> F.raw_pointer ; visit_F__reference : unit -> F.reference -> F.reference ; visit_F__slice : unit -> F.slice -> F.slice ; visit_F__state_passing_loop : unit -> F.state_passing_loop -> F.state_passing_loop ; visit_F__trait_item_default : unit -> F.trait_item_default -> F.trait_item_default ; visit_F__unsafe : unit -> F.unsafe -> F.unsafe ; visit_F__while_loop : unit -> F.while_loop -> F.while_loop ; visit_Local_ident__t : unit -> Local_ident.t -> Local_ident.t ; visit_arm : unit -> Hax_engine__Ast.Make(F).arm -> Hax_engine__Ast.Make(F).arm ; visit_arm' : unit -> Hax_engine__Ast.Make(F).arm' -> Hax_engine__Ast.Make(F).arm' ; visit_attr : unit -> Ast.attr -> Ast.attr ; visit_attrs : unit -> Ast.attrs -> Ast.attrs ; visit_binding_mode : unit -> Hax_engine__Ast.Make(F).binding_mode -> Hax_engine__Ast.Make(F).binding_mode ; visit_bool : unit -> Base.bool -> Base.bool ; visit_borrow_kind : unit -> Hax_engine__Ast.Make(F).borrow_kind -> Hax_engine__Ast.Make(F).borrow_kind ; visit_char : unit -> Base.char -> Base.char ; visit_concrete_ident : unit -> Ast.concrete_ident -> Ast.concrete_ident ; visit_dyn_trait_goal : unit -> Hax_engine__Ast.Make(F).dyn_trait_goal -> Hax_engine__Ast.Make(F).dyn_trait_goal ; visit_expr : unit -> Hax_engine__Ast.Make(F).expr -> Hax_engine__Ast.Make(F).expr ; visit_expr' : unit -> Hax_engine__Ast.Make(F).expr' -> Hax_engine__Ast.Make(F).expr' ; visit_field_pat : unit -> Hax_engine__Ast.Make(F).field_pat -> Hax_engine__Ast.Make(F).field_pat ; visit_float_kind : unit -> Ast.float_kind -> Ast.float_kind ; visit_generic_constraint : unit -> Hax_engine__Ast.Make(F).generic_constraint -> Hax_engine__Ast.Make(F).generic_constraint ; visit_generic_param : unit -> Hax_engine__Ast.Make(F).generic_param -> Hax_engine__Ast.Make(F).generic_param ; visit_generic_param_kind : unit -> Hax_engine__Ast.Make(F).generic_param_kind -> Hax_engine__Ast.Make(F).generic_param_kind ; visit_generic_value : unit -> Hax_engine__Ast.Make(F).generic_value -> Hax_engine__Ast.Make(F).generic_value ; visit_generics : unit -> Hax_engine__Ast.Make(F).generics -> Hax_engine__Ast.Make(F).generics ; visit_global_ident : unit -> Ast.global_ident -> Ast.global_ident ; visit_guard : unit -> Hax_engine__Ast.Make(F).guard -> Hax_engine__Ast.Make(F).guard ; visit_guard' : unit -> Hax_engine__Ast.Make(F).guard' -> Hax_engine__Ast.Make(F).guard' ; visit_impl_expr : unit -> Hax_engine__Ast.Make(F).impl_expr -> Hax_engine__Ast.Make(F).impl_expr ; visit_impl_expr_kind : unit -> Hax_engine__Ast.Make(F).impl_expr_kind -> Hax_engine__Ast.Make(F).impl_expr_kind ; visit_impl_ident : unit -> Hax_engine__Ast.Make(F).impl_ident -> Hax_engine__Ast.Make(F).impl_ident ; visit_impl_item : unit -> Hax_engine__Ast.Make(F).impl_item -> Hax_engine__Ast.Make(F).impl_item ; visit_impl_item' : unit -> Hax_engine__Ast.Make(F).impl_item' -> Hax_engine__Ast.Make(F).impl_item' ; visit_int_kind : unit -> Ast.int_kind -> Ast.int_kind ; visit_item : unit -> Hax_engine__Ast.Make(F).item -> Hax_engine__Ast.Make(F).item ; visit_item' : unit -> Hax_engine__Ast.Make(F).item' -> Hax_engine__Ast.Make(F).item' ; visit_lhs : unit -> Hax_engine__Ast.Make(F).lhs -> Hax_engine__Ast.Make(F).lhs ; visit_list : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.list -> 'a Base.list ; visit_literal : unit -> Ast.literal -> Ast.literal ; visit_local_ident : unit -> Ast.local_ident -> Ast.local_ident ; visit_loop_kind : unit -> Hax_engine__Ast.Make(F).loop_kind -> Hax_engine__Ast.Make(F).loop_kind ; visit_loop_state : unit -> Hax_engine__Ast.Make(F).loop_state -> Hax_engine__Ast.Make(F).loop_state ; visit_modul : unit -> Hax_engine__Ast.Make(F).item Prelude.list -> Hax_engine__Ast.Make(F).item Prelude.list ; visit_mutability : 'mut_witness. (unit -> 'mut_witness -> 'mut_witness) -> unit -> 'mut_witness Ast.mutability -> 'mut_witness Ast.mutability ; visit_option : 'a. (unit -> 'a -> 'a) -> unit -> 'a Base.option -> 'a Base.option ; visit_param : unit -> Hax_engine__Ast.Make(F).param -> Hax_engine__Ast.Make(F).param ; visit_pat : unit -> Hax_engine__Ast.Make(F).pat -> Hax_engine__Ast.Make(F).pat ; visit_pat' : unit -> Hax_engine__Ast.Make(F).pat' -> Hax_engine__Ast.Make(F).pat' ; visit_prim___tuple_2 : 't0 't1. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> unit -> ('t0 * 't1) -> 't0 * 't1 ; visit_prim___tuple_3 : 't0 't1 't2. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> unit -> ('t0 * 't1 * 't2) -> 't0 * 't1 * 't2 ; visit_prim___tuple_4 : 't0 't1 't2 't3. (unit -> 't0 -> 't0) -> (unit -> 't1 -> 't1) -> (unit -> 't2 -> 't2) -> (unit -> 't3 -> 't3) -> unit -> ('t0 * 't1 * 't2 * 't3) -> 't0 * 't1 * 't2 * 't3 ; visit_projection_predicate : unit -> Hax_engine__Ast.Make(F).projection_predicate -> Hax_engine__Ast.Make(F).projection_predicate ; visit_quote : unit -> Hax_engine__Ast.Make(F).quote -> Hax_engine__Ast.Make(F).quote ; visit_safety_kind : unit -> Hax_engine__Ast.Make(F).safety_kind -> Hax_engine__Ast.Make(F).safety_kind ; visit_span : unit -> Ast.span -> Ast.span ; visit_string : unit -> Base.string -> Base.string ; visit_supported_monads : unit -> Hax_engine__Ast.Make(F).supported_monads -> Hax_engine__Ast.Make(F).supported_monads ; visit_todo : unit -> Ast.todo -> Ast.todo ; visit_trait_goal : unit -> Hax_engine__Ast.Make(F).trait_goal -> Hax_engine__Ast.Make(F).trait_goal ; visit_trait_item : unit -> Hax_engine__Ast.Make(F).trait_item -> Hax_engine__Ast.Make(F).trait_item ; visit_trait_item' : unit -> Hax_engine__Ast.Make(F).trait_item' -> Hax_engine__Ast.Make(F).trait_item' ; visit_ty : unit -> Hax_engine__Ast.Make(F).ty -> Hax_engine__Ast.Make(F).ty ; visit_variant : unit -> Hax_engine__Ast.Make(F).variant -> Hax_engine__Ast.Make(F).variant >
val rename_global_idents : (visit_level -> Ast.global_ident -> Ast.global_ident) -> < visit_F__arbitrary_lhs : visit_level -> F.arbitrary_lhs -> F.arbitrary_lhs ; visit_F__as_pattern : visit_level -> F.as_pattern -> F.as_pattern ; visit_F__block : visit_level -> F.block -> F.block ; visit_F__break : visit_level -> F.break -> F.break ; visit_F__construct_base : visit_level -> F.construct_base -> F.construct_base ; visit_F__continue : visit_level -> F.continue -> F.continue ; visit_F__dyn : visit_level -> F.dyn -> F.dyn ; visit_F__early_exit : visit_level -> F.early_exit -> F.early_exit ; visit_F__for_index_loop : visit_level -> F.for_index_loop -> F.for_index_loop ; visit_F__for_loop : visit_level -> F.for_loop -> F.for_loop ; visit_F__lifetime : visit_level -> F.lifetime -> F.lifetime ; visit_F__loop : visit_level -> F.loop -> F.loop ; visit_F__macro : visit_level -> F.macro -> F.macro ; visit_F__match_guard : visit_level -> F.match_guard -> F.match_guard ; visit_F__monadic_action : visit_level -> F.monadic_action -> F.monadic_action ; visit_F__monadic_binding : visit_level -> F.monadic_binding -> F.monadic_binding ; visit_F__mutable_pointer : visit_level -> F.mutable_pointer -> F.mutable_pointer ; visit_F__mutable_reference : visit_level -> F.mutable_reference -> F.mutable_reference ; visit_F__mutable_variable : visit_level -> F.mutable_variable -> F.mutable_variable ; visit_F__nontrivial_lhs : visit_level -> F.nontrivial_lhs -> F.nontrivial_lhs ; visit_F__question_mark : visit_level -> F.question_mark -> F.question_mark ; visit_F__raw_pointer : visit_level -> F.raw_pointer -> F.raw_pointer ; visit_F__reference : visit_level -> F.reference -> F.reference ; visit_F__slice : visit_level -> F.slice -> F.slice ; visit_F__state_passing_loop : visit_level -> F.state_passing_loop -> F.state_passing_loop ; visit_F__trait_item_default : visit_level -> F.trait_item_default -> F.trait_item_default ; visit_F__unsafe : visit_level -> F.unsafe -> F.unsafe ; visit_F__while_loop : visit_level -> F.while_loop -> F.while_loop ; visit_Local_ident__t : visit_level -> Local_ident.t -> Local_ident.t ; visit_arm : visit_level -> Hax_engine__Ast.Make(F).arm -> Hax_engine__Ast.Make(F).arm ; visit_arm' : visit_level -> Hax_engine__Ast.Make(F).arm' -> Hax_engine__Ast.Make(F).arm' ; visit_attr : visit_level -> Ast.attr -> Ast.attr ; visit_attrs : visit_level -> Ast.attrs -> Ast.attrs ; visit_binding_mode : visit_level -> Hax_engine__Ast.Make(F).binding_mode -> Hax_engine__Ast.Make(F).binding_mode ; visit_bool : visit_level -> Base.bool -> Base.bool ; visit_borrow_kind : visit_level -> Hax_engine__Ast.Make(F).borrow_kind -> Hax_engine__Ast.Make(F).borrow_kind ; visit_char : visit_level -> Base.char -> Base.char ; visit_concrete_ident : visit_level -> Ast.concrete_ident -> Ast.concrete_ident ; visit_dyn_trait_goal : visit_level -> Hax_engine__Ast.Make(F).dyn_trait_goal -> Hax_engine__Ast.Make(F).dyn_trait_goal ; visit_expr : visit_level -> Hax_engine__Ast.Make(F).expr -> Hax_engine__Ast.Make(F).expr ; visit_expr' : visit_level -> Hax_engine__Ast.Make(F).expr' -> Hax_engine__Ast.Make(F).expr' ; visit_field_pat : visit_level -> Hax_engine__Ast.Make(F).field_pat -> Hax_engine__Ast.Make(F).field_pat ; visit_float_kind : visit_level -> Ast.float_kind -> Ast.float_kind ; visit_generic_constraint : visit_level -> Hax_engine__Ast.Make(F).generic_constraint -> Hax_engine__Ast.Make(F).generic_constraint ; visit_generic_param : visit_level -> Hax_engine__Ast.Make(F).generic_param -> Hax_engine__Ast.Make(F).generic_param ; visit_generic_param_kind : visit_level -> Hax_engine__Ast.Make(F).generic_param_kind -> Hax_engine__Ast.Make(F).generic_param_kind ; visit_generic_value : visit_level -> Hax_engine__Ast.Make(F).generic_value -> Hax_engine__Ast.Make(F).generic_value ; visit_generics : visit_level -> Hax_engine__Ast.Make(F).generics -> Hax_engine__Ast.Make(F).generics ; visit_global_ident : visit_level -> Ast.global_ident -> Ast.global_ident ; visit_guard : visit_level -> Hax_engine__Ast.Make(F).guard -> Hax_engine__Ast.Make(F).guard ; visit_guard' : visit_level -> Hax_engine__Ast.Make(F).guard' -> Hax_engine__Ast.Make(F).guard' ; visit_impl_expr : visit_level -> Hax_engine__Ast.Make(F).impl_expr -> Hax_engine__Ast.Make(F).impl_expr ; visit_impl_expr_kind : visit_level -> Hax_engine__Ast.Make(F).impl_expr_kind -> Hax_engine__Ast.Make(F).impl_expr_kind ; visit_impl_ident : visit_level -> Hax_engine__Ast.Make(F).impl_ident -> Hax_engine__Ast.Make(F).impl_ident ; visit_impl_item : visit_level -> Hax_engine__Ast.Make(F).impl_item -> Hax_engine__Ast.Make(F).impl_item ; visit_impl_item' : visit_level -> Hax_engine__Ast.Make(F).impl_item' -> Hax_engine__Ast.Make(F).impl_item' ; visit_int_kind : visit_level -> Ast.int_kind -> Ast.int_kind ; visit_item : visit_level -> Hax_engine__Ast.Make(F).item -> Hax_engine__Ast.Make(F).item ; visit_item' : visit_level -> Hax_engine__Ast.Make(F).item' -> Hax_engine__Ast.Make(F).item' ; visit_lhs : visit_level -> Hax_engine__Ast.Make(F).lhs -> Hax_engine__Ast.Make(F).lhs ; visit_list : 'a. (visit_level -> 'a -> 'a) -> visit_level -> 'a Base.list -> 'a Base.list ; visit_literal : visit_level -> Ast.literal -> Ast.literal ; visit_local_ident : visit_level -> Ast.local_ident -> Ast.local_ident ; visit_loop_kind : visit_level -> Hax_engine__Ast.Make(F).loop_kind -> Hax_engine__Ast.Make(F).loop_kind ; visit_loop_state : visit_level -> Hax_engine__Ast.Make(F).loop_state -> Hax_engine__Ast.Make(F).loop_state ; visit_modul : visit_level -> Hax_engine__Ast.Make(F).item Prelude.list -> Hax_engine__Ast.Make(F).item Prelude.list ; visit_mutability : 'mut_witness. (visit_level -> 'mut_witness -> 'mut_witness) -> visit_level -> 'mut_witness Ast.mutability -> 'mut_witness Ast.mutability ; visit_option : 'a. (visit_level -> 'a -> 'a) -> visit_level -> 'a Base.option -> 'a Base.option ; visit_param : visit_level -> Hax_engine__Ast.Make(F).param -> Hax_engine__Ast.Make(F).param ; visit_pat : visit_level -> Hax_engine__Ast.Make(F).pat -> Hax_engine__Ast.Make(F).pat ; visit_pat' : visit_level -> Hax_engine__Ast.Make(F).pat' -> Hax_engine__Ast.Make(F).pat' ; visit_prim___tuple_2 : 't0 't1. (visit_level -> 't0 -> 't0) -> (visit_level -> 't1 -> 't1) -> visit_level -> ('t0 * 't1) -> 't0 * 't1 ; visit_prim___tuple_3 : 't0 't1 't2. (visit_level -> 't0 -> 't0) -> (visit_level -> 't1 -> 't1) -> (visit_level -> 't2 -> 't2) -> visit_level -> ('t0 * 't1 * 't2) -> 't0 * 't1 * 't2 ; visit_prim___tuple_4 : 't0 't1 't2 't3. (visit_level -> 't0 -> 't0) -> (visit_level -> 't1 -> 't1) -> (visit_level -> 't2 -> 't2) -> (visit_level -> 't3 -> 't3) -> visit_level -> ('t0 * 't1 * 't2 * 't3) -> 't0 * 't1 * 't2 * 't3 ; visit_projection_predicate : visit_level -> Hax_engine__Ast.Make(F).projection_predicate -> Hax_engine__Ast.Make(F).projection_predicate ; visit_quote : visit_level -> Hax_engine__Ast.Make(F).quote -> Hax_engine__Ast.Make(F).quote ; visit_safety_kind : visit_level -> Hax_engine__Ast.Make(F).safety_kind -> Hax_engine__Ast.Make(F).safety_kind ; visit_span : visit_level -> Ast.span -> Ast.span ; visit_string : visit_level -> Base.string -> Base.string ; visit_supported_monads : visit_level -> Hax_engine__Ast.Make(F).supported_monads -> Hax_engine__Ast.Make(F).supported_monads ; visit_todo : visit_level -> Ast.todo -> Ast.todo ; visit_trait_goal : visit_level -> Hax_engine__Ast.Make(F).trait_goal -> Hax_engine__Ast.Make(F).trait_goal ; visit_trait_item : visit_level -> Hax_engine__Ast.Make(F).trait_item -> Hax_engine__Ast.Make(F).trait_item ; visit_trait_item' : visit_level -> Hax_engine__Ast.Make(F).trait_item' -> Hax_engine__Ast.Make(F).trait_item' ; visit_ty : visit_level -> Hax_engine__Ast.Make(F).ty -> Hax_engine__Ast.Make(F).ty ; visit_variant : visit_level -> Hax_engine__Ast.Make(F).variant -> Hax_engine__Ast.Make(F).variant >
val rename_concrete_idents : (visit_level -> Concrete_ident.t -> Concrete_ident.t) -> < visit_F__arbitrary_lhs : visit_level -> F.arbitrary_lhs -> F.arbitrary_lhs ; visit_F__as_pattern : visit_level -> F.as_pattern -> F.as_pattern ; visit_F__block : visit_level -> F.block -> F.block ; visit_F__break : visit_level -> F.break -> F.break ; visit_F__construct_base : visit_level -> F.construct_base -> F.construct_base ; visit_F__continue : visit_level -> F.continue -> F.continue ; visit_F__dyn : visit_level -> F.dyn -> F.dyn ; visit_F__early_exit : visit_level -> F.early_exit -> F.early_exit ; visit_F__for_index_loop : visit_level -> F.for_index_loop -> F.for_index_loop ; visit_F__for_loop : visit_level -> F.for_loop -> F.for_loop ; visit_F__lifetime : visit_level -> F.lifetime -> F.lifetime ; visit_F__loop : visit_level -> F.loop -> F.loop ; visit_F__macro : visit_level -> F.macro -> F.macro ; visit_F__match_guard : visit_level -> F.match_guard -> F.match_guard ; visit_F__monadic_action : visit_level -> F.monadic_action -> F.monadic_action ; visit_F__monadic_binding : visit_level -> F.monadic_binding -> F.monadic_binding ; visit_F__mutable_pointer : visit_level -> F.mutable_pointer -> F.mutable_pointer ; visit_F__mutable_reference : visit_level -> F.mutable_reference -> F.mutable_reference ; visit_F__mutable_variable : visit_level -> F.mutable_variable -> F.mutable_variable ; visit_F__nontrivial_lhs : visit_level -> F.nontrivial_lhs -> F.nontrivial_lhs ; visit_F__question_mark : visit_level -> F.question_mark -> F.question_mark ; visit_F__raw_pointer : visit_level -> F.raw_pointer -> F.raw_pointer ; visit_F__reference : visit_level -> F.reference -> F.reference ; visit_F__slice : visit_level -> F.slice -> F.slice ; visit_F__state_passing_loop : visit_level -> F.state_passing_loop -> F.state_passing_loop ; visit_F__trait_item_default : visit_level -> F.trait_item_default -> F.trait_item_default ; visit_F__unsafe : visit_level -> F.unsafe -> F.unsafe ; visit_F__while_loop : visit_level -> F.while_loop -> F.while_loop ; visit_Local_ident__t : visit_level -> Local_ident.t -> Local_ident.t ; visit_arm : visit_level -> Hax_engine__Ast.Make(F).arm -> Hax_engine__Ast.Make(F).arm ; visit_arm' : visit_level -> Hax_engine__Ast.Make(F).arm' -> Hax_engine__Ast.Make(F).arm' ; visit_attr : visit_level -> Ast.attr -> Ast.attr ; visit_attrs : visit_level -> Ast.attrs -> Ast.attrs ; visit_binding_mode : visit_level -> Hax_engine__Ast.Make(F).binding_mode -> Hax_engine__Ast.Make(F).binding_mode ; visit_bool : visit_level -> Base.bool -> Base.bool ; visit_borrow_kind : visit_level -> Hax_engine__Ast.Make(F).borrow_kind -> Hax_engine__Ast.Make(F).borrow_kind ; visit_char : visit_level -> Base.char -> Base.char ; visit_concrete_ident : visit_level -> Ast.concrete_ident -> Ast.concrete_ident ; visit_dyn_trait_goal : visit_level -> Hax_engine__Ast.Make(F).dyn_trait_goal -> Hax_engine__Ast.Make(F).dyn_trait_goal ; visit_expr : visit_level -> Hax_engine__Ast.Make(F).expr -> Hax_engine__Ast.Make(F).expr ; visit_expr' : visit_level -> Hax_engine__Ast.Make(F).expr' -> Hax_engine__Ast.Make(F).expr' ; visit_field_pat : visit_level -> Hax_engine__Ast.Make(F).field_pat -> Hax_engine__Ast.Make(F).field_pat ; visit_float_kind : visit_level -> Ast.float_kind -> Ast.float_kind ; visit_generic_constraint : visit_level -> Hax_engine__Ast.Make(F).generic_constraint -> Hax_engine__Ast.Make(F).generic_constraint ; visit_generic_param : visit_level -> Hax_engine__Ast.Make(F).generic_param -> Hax_engine__Ast.Make(F).generic_param ; visit_generic_param_kind : visit_level -> Hax_engine__Ast.Make(F).generic_param_kind -> Hax_engine__Ast.Make(F).generic_param_kind ; visit_generic_value : visit_level -> Hax_engine__Ast.Make(F).generic_value -> Hax_engine__Ast.Make(F).generic_value ; visit_generics : visit_level -> Hax_engine__Ast.Make(F).generics -> Hax_engine__Ast.Make(F).generics ; visit_global_ident : visit_level -> Ast.global_ident -> Ast.global_ident ; visit_guard : visit_level -> Hax_engine__Ast.Make(F).guard -> Hax_engine__Ast.Make(F).guard ; visit_guard' : visit_level -> Hax_engine__Ast.Make(F).guard' -> Hax_engine__Ast.Make(F).guard' ; visit_impl_expr : visit_level -> Hax_engine__Ast.Make(F).impl_expr -> Hax_engine__Ast.Make(F).impl_expr ; visit_impl_expr_kind : visit_level -> Hax_engine__Ast.Make(F).impl_expr_kind -> Hax_engine__Ast.Make(F).impl_expr_kind ; visit_impl_ident : visit_level -> Hax_engine__Ast.Make(F).impl_ident -> Hax_engine__Ast.Make(F).impl_ident ; visit_impl_item : visit_level -> Hax_engine__Ast.Make(F).impl_item -> Hax_engine__Ast.Make(F).impl_item ; visit_impl_item' : visit_level -> Hax_engine__Ast.Make(F).impl_item' -> Hax_engine__Ast.Make(F).impl_item' ; visit_int_kind : visit_level -> Ast.int_kind -> Ast.int_kind ; visit_item : visit_level -> Hax_engine__Ast.Make(F).item -> Hax_engine__Ast.Make(F).item ; visit_item' : visit_level -> Hax_engine__Ast.Make(F).item' -> Hax_engine__Ast.Make(F).item' ; visit_lhs : visit_level -> Hax_engine__Ast.Make(F).lhs -> Hax_engine__Ast.Make(F).lhs ; visit_list : 'a. (visit_level -> 'a -> 'a) -> visit_level -> 'a Base.list -> 'a Base.list ; visit_literal : visit_level -> Ast.literal -> Ast.literal ; visit_local_ident : visit_level -> Ast.local_ident -> Ast.local_ident ; visit_loop_kind : visit_level -> Hax_engine__Ast.Make(F).loop_kind -> Hax_engine__Ast.Make(F).loop_kind ; visit_loop_state : visit_level -> Hax_engine__Ast.Make(F).loop_state -> Hax_engine__Ast.Make(F).loop_state ; visit_modul : visit_level -> Hax_engine__Ast.Make(F).item Prelude.list -> Hax_engine__Ast.Make(F).item Prelude.list ; visit_mutability : 'mut_witness. (visit_level -> 'mut_witness -> 'mut_witness) -> visit_level -> 'mut_witness Ast.mutability -> 'mut_witness Ast.mutability ; visit_option : 'a. (visit_level -> 'a -> 'a) -> visit_level -> 'a Base.option -> 'a Base.option ; visit_param : visit_level -> Hax_engine__Ast.Make(F).param -> Hax_engine__Ast.Make(F).param ; visit_pat : visit_level -> Hax_engine__Ast.Make(F).pat -> Hax_engine__Ast.Make(F).pat ; visit_pat' : visit_level -> Hax_engine__Ast.Make(F).pat' -> Hax_engine__Ast.Make(F).pat' ; visit_prim___tuple_2 : 't0 't1. (visit_level -> 't0 -> 't0) -> (visit_level -> 't1 -> 't1) -> visit_level -> ('t0 * 't1) -> 't0 * 't1 ; visit_prim___tuple_3 : 't0 't1 't2. (visit_level -> 't0 -> 't0) -> (visit_level -> 't1 -> 't1) -> (visit_level -> 't2 -> 't2) -> visit_level -> ('t0 * 't1 * 't2) -> 't0 * 't1 * 't2 ; visit_prim___tuple_4 : 't0 't1 't2 't3. (visit_level -> 't0 -> 't0) -> (visit_level -> 't1 -> 't1) -> (visit_level -> 't2 -> 't2) -> (visit_level -> 't3 -> 't3) -> visit_level -> ('t0 * 't1 * 't2 * 't3) -> 't0 * 't1 * 't2 * 't3 ; visit_projection_predicate : visit_level -> Hax_engine__Ast.Make(F).projection_predicate -> Hax_engine__Ast.Make(F).projection_predicate ; visit_quote : visit_level -> Hax_engine__Ast.Make(F).quote -> Hax_engine__Ast.Make(F).quote ; visit_safety_kind : visit_level -> Hax_engine__Ast.Make(F).safety_kind -> Hax_engine__Ast.Make(F).safety_kind ; visit_span : visit_level -> Ast.span -> Ast.span ; visit_string : visit_level -> Base.string -> Base.string ; visit_supported_monads : visit_level -> Hax_engine__Ast.Make(F).supported_monads -> Hax_engine__Ast.Make(F).supported_monads ; visit_todo : visit_level -> Ast.todo -> Ast.todo ; visit_trait_goal : visit_level -> Hax_engine__Ast.Make(F).trait_goal -> Hax_engine__Ast.Make(F).trait_goal ; visit_trait_item : visit_level -> Hax_engine__Ast.Make(F).trait_item -> Hax_engine__Ast.Make(F).trait_item ; visit_trait_item' : visit_level -> Hax_engine__Ast.Make(F).trait_item' -> Hax_engine__Ast.Make(F).trait_item' ; visit_ty : visit_level -> Hax_engine__Ast.Make(F).ty -> Hax_engine__Ast.Make(F).ty ; visit_variant : visit_level -> Hax_engine__Ast.Make(F).variant -> Hax_engine__Ast.Make(F).variant >
val rename_global_idents_item : (visit_level -> Ast.global_ident -> Ast.global_ident) -> AST.item -> AST.item
val add_typ_ascription : Hax_engine__Ast.Make(F).item -> Hax_engine__Ast.Make(F).item

Add type ascription nodes in nested function calls. This helps type inference in the presence of associated types in backends that don't support them well (F* for instance).