package diffast-core

  1. Overview
  2. Docs
module Xarray = Diffast_misc.Xarray
module Xset = Diffast_misc.Xset
module Xhash = Diffast_misc.Xhash
module Xprint = Diffast_misc.Xprint
module Otree = Diffast_misc.Otree
module SMP = Diffast_misc.SMP
module Nodetbl = Node.Tbl
val sprintf : ('a, unit, string) format -> 'a
val is_use : < data : < binding : B.t.. >.. > -> bool
val get_def_node : < search_node_by_uid : Diffast_misc.UID.t -> 'a.. > -> < data : < binding : B.t.. >.. > -> 'a
val is_local_def : < data : < binding : B.t.. >.. > -> bool
val subtree_similarity_thresh : float
val subtree_similarity_ratio_thresh : float
val subtree_similarity_ratio_cutoff : float
val adjacency_ratio_cutoff : float
val ancestors_similarity_thresh : float
val ancestors_similarity_ratio_thresh : float
val ncross_sim_ratio_thresh : float
val permutation_hub_count_thresh : int
val label_match_eq_score : int
val label_match_eq_named_bonus : int
val get_label_match_eq_named_score : 'a -> int
type 'node_t label_match_result = {
  1. lm_score : float;
  2. lm_matches : ('node_t * 'node_t) list;
  3. lm_nmcount : int;
}
exception Found
val compare_pair : ('a * 'b) -> ('a * 'b) -> int
val estimate_cost_of_move : < fast_scan_whole_initial_subtree : 'a -> ('b -> unit) -> 'c.. > -> < initial_leftmost : < gindex : 'e.. > as 'd -> < gindex : 'e.. >.. > -> < find : 'b -> < gindex : 'e.. >.. > -> 'a -> 'd -> int
val get_bn : < _replace_children : ?initial:bool -> (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; _set_is_collapsed : bool -> unit ; add_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_children_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_children_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_substance : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; apath : Diffast_misc.Path.t ; begin_mutation : unit -> unit ; children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; children_indexes : int list ; children_uids : Diffast_misc.UID.t list ; clear_collapsible : unit ; clear_in_path : unit ; collapse : int -> Diffast_misc.Xhash.t -> unit ; collapse_locked : bool ; collapse_not_locked : bool ; collapsible : bool ; data : Spec.node_data_t ; decide_collapsible_or_not : unit ; del_leftmost_child : unit -> unit ; del_rightmost_child : unit -> unit ; end_mutation : ?overwrite:bool -> unit -> unit ; expand : unit ; get_substances : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; gindex : Diffast_core.Spec.SB.Otree.GI.t ; has_hidden_parent : bool ; has_initial_parent : bool ; has_later_mutation : bool ; has_parent : bool ; hash : int ; hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; hidden_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; hide_parent : unit ; in_path : bool ; index : int ; init_mutation : unit -> unit ; initial_ancestor_nodes : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; initial_children_uids : Diffast_misc.UID.t list ; initial_nchildren : int ; initial_parent : 'b ; initial_pos : int ; initial_to_string : string ; insert_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; is_collapsed : bool ; is_contracted : bool ; is_leaf : bool ; is_valid : bool ; iter_initial_ancestor_nodes : (Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit) -> unit ; lock_collapse : unit ; nchildren : int ; nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option ; path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 Diffast_core.Spec.SB.Otree.path ; pos : int ; preorder_index : int ; print : unit ; prune : unit ; prune_all_children : unit ; prune_children : int list -> unit ; prune_initial_children : int list -> unit ; prune_nth_child : int -> unit ; replace_children : (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; replace_nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_apath : Diffast_misc.Path.t -> unit ; set_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_collapsible : unit ; set_data : Spec.node_data_t -> unit ; set_digest : Diffast_misc.Xhash.t -> unit ; set_gindex : Diffast_core.Spec.SB.Otree.GI.t -> unit ; set_hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_in_path : unit ; set_index : int -> unit ; set_initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_initial_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_initial_pos : int -> unit ; set_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option -> unit ; set_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; set_pos : int -> unit ; set_preorder_index : int -> unit ; to_dot : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str_ini : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_qualified_string : string ; to_rep : string ; to_string : string ; uid : Diffast_misc.UID.t ; unhide_parent : unit ; unlock_collapse : unit ; v_delete_child : int -> unit ; v_delete_children : int list -> unit ; v_insert_child : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_insert_children : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; v_update_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_update_children : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit > as 'a -> 'b
val get_stmt : < _replace_children : ?initial:bool -> (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; _set_is_collapsed : bool -> unit ; add_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_children_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_children_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_substance : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; apath : Diffast_misc.Path.t ; begin_mutation : unit -> unit ; children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; children_indexes : int list ; children_uids : Diffast_misc.UID.t list ; clear_collapsible : unit ; clear_in_path : unit ; collapse : int -> Diffast_misc.Xhash.t -> unit ; collapse_locked : bool ; collapse_not_locked : bool ; collapsible : bool ; data : Spec.node_data_t ; decide_collapsible_or_not : unit ; del_leftmost_child : unit -> unit ; del_rightmost_child : unit -> unit ; end_mutation : ?overwrite:bool -> unit -> unit ; expand : unit ; get_substances : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; gindex : Diffast_core.Spec.SB.Otree.GI.t ; has_hidden_parent : bool ; has_initial_parent : bool ; has_later_mutation : bool ; has_parent : bool ; hash : int ; hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; hidden_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; hide_parent : unit ; in_path : bool ; index : int ; init_mutation : unit -> unit ; initial_ancestor_nodes : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; initial_children_uids : Diffast_misc.UID.t list ; initial_nchildren : int ; initial_parent : 'b ; initial_pos : int ; initial_to_string : string ; insert_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; is_collapsed : bool ; is_contracted : bool ; is_leaf : bool ; is_valid : bool ; iter_initial_ancestor_nodes : (Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit) -> unit ; lock_collapse : unit ; nchildren : int ; nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option ; path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 Diffast_core.Spec.SB.Otree.path ; pos : int ; preorder_index : int ; print : unit ; prune : unit ; prune_all_children : unit ; prune_children : int list -> unit ; prune_initial_children : int list -> unit ; prune_nth_child : int -> unit ; replace_children : (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; replace_nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_apath : Diffast_misc.Path.t -> unit ; set_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_collapsible : unit ; set_data : Spec.node_data_t -> unit ; set_digest : Diffast_misc.Xhash.t -> unit ; set_gindex : Diffast_core.Spec.SB.Otree.GI.t -> unit ; set_hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_in_path : unit ; set_index : int -> unit ; set_initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_initial_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_initial_pos : int -> unit ; set_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option -> unit ; set_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; set_pos : int -> unit ; set_preorder_index : int -> unit ; to_dot : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str_ini : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_qualified_string : string ; to_rep : string ; to_string : string ; uid : Diffast_misc.UID.t ; unhide_parent : unit ; unlock_collapse : unit ; v_delete_child : int -> unit ; v_delete_children : int list -> unit ; v_insert_child : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_insert_children : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; v_update_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_update_children : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit > as 'a -> 'b
val _is_map : < find : 'a -> 'b.. > -> 'a -> 'b -> bool
val _get_digest : < get_digest : < data : < _digest : 'b option.. >.. > as 'a -> 'b.. > -> 'a -> 'b
val __same_digest : < get_digest : < data : < _digest : 'b option.. >.. > as 'a -> 'b.. > -> < get_digest : < data : < _digest : 'b option.. >.. > as 'c -> 'b.. > -> 'a -> 'c -> bool
val _same_digest : < get_digest : < data : < _digest : 'b option ; eq : < _digest : 'b option.. > as 'c -> bool.. > ; initial_nchildren : int.. > as 'a -> 'b.. > -> < get_digest : < data : 'c ; initial_nchildren : int.. > as 'd -> 'b.. > -> ?leaf_comparison:bool -> ?digest_for_leaf:bool -> ?digest_for_all:bool -> 'a -> 'd -> bool
val boundary_mapped : (< _replace_children : ?initial:bool -> (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; _set_is_collapsed : bool -> unit ; add_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_children_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_children_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_substance : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; apath : Diffast_misc.Path.t ; begin_mutation : unit -> unit ; children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; children_indexes : int list ; children_uids : Diffast_misc.UID.t list ; clear_collapsible : unit ; clear_in_path : unit ; collapse : int -> Diffast_misc.Xhash.t -> unit ; collapse_locked : bool ; collapse_not_locked : bool ; collapsible : bool ; data : < _annotation : Obj.t ; _anonymized2_label : Obj.t ; _anonymized3_label : Obj.t ; _anonymized_label : Obj.t ; _digest : Diffast_misc.Xhash.t option ; _digest_string : string ; _label : Obj.t ; _set_digest : Diffast_core.Spec.SB.Xhash.t -> unit ; _stripped_label : Obj.t ; _stripped_orig_label : Obj.t ; add_binding : Diffast_core.Spec.Binding.t -> unit ; add_successor : Spec.node_data_t Diffast_core.Spec.Otree.node2 -> unit ; add_to_ordinal_list : int list -> unit ; anonymized2_label : string ; anonymized3_label : string ; anonymized_label : string ; binding : Diffast_core.Spec.SB.Binding.t ; bindings : Diffast_core.Spec.SB.Binding.t list ; change_attr : string -> string -> unit ; char : char ; delete_attr : string -> unit ; digest : Diffast_misc.Xhash.t option ; digest_string : string ; elem_attrs_for_delta : (string * string) list ; elem_name_for_delta : string ; eq : Spec.node_data_t -> bool ; equals : Spec.node_data_t -> bool ; feature : Obj.t * Diffast_core.Spec.SB.Xhash.t option ; frommacro : string ; get_category : string ; get_ident_use : string ; get_name : string ; get_ordinal : int -> int ; get_orig_name : string ; get_prefix : string ; get_stripped_name : string ; get_suffix : string ; get_value : string ; gid : Diffast_core.Spec.SB.Otree.GI.t ; has_non_trivial_tid : bool ; has_non_trivial_value : bool ; has_ordinal : bool ; has_value : bool ; id_loc : Diffast_core.Spec.Loc.t ; insert_attr : string -> string -> unit ; is_anonymous : bool ; is_anonymous_orig : bool ; is_block : bool ; is_boundary : bool ; is_common : bool ; is_compatible_with : ?weak:bool -> Spec.node_data_t -> bool ; is_frommacro : bool ; is_int_literal : bool ; is_literal : bool ; is_named : bool ; is_named_orig : bool ; is_ntuple : bool ; is_op : bool ; is_order_insensitive : bool ; is_partition : bool ; is_phantom : bool ; is_primary : bool ; is_real_literal : bool ; is_scope_creating : bool ; is_sequence : bool ; is_special : bool ; is_statement : bool ; is_string_literal : bool ; label : string ; mid : Diffast_core.Spec.SB.MID.t ; more_anonymized_label : string ; move_disallowed : bool ; not_frommacro : bool ; orig_elem_attrs_for_delta : (string * string) list ; orig_elem_name_for_delta : string ; orig_lab_opt : Obj.t option ; orig_to_elem_data_for_delta : string * (string * string) list * string ; orig_to_elem_data_for_eq : string * (string * string) list * string ; quasi_eq : Spec.node_data_t -> bool ; relabel_allowed : Spec.node_data_t -> bool ; reset_digest : unit ; scope_node : Spec.node_data_t Diffast_core.Spec.Otree.node2 ; set_binding : Diffast_core.Spec.Binding.t -> unit ; set_bindings : Diffast_core.Spec.Binding.t list -> unit ; set_digest : Diffast_misc.Xhash.t -> unit ; set_frommacro : string -> unit ; set_gid : Diffast_core.Spec.SB.Otree.GI.t -> unit ; set_loc : Diffast_core.Spec.SB.Loc.t -> unit ; set_mid : Diffast_core.Spec.SB.MID.t -> unit ; set_prefix : string -> unit ; set_scope_node : Spec.node_data_t Diffast_core.Spec.Otree.node2 -> unit ; set_source_fid : string -> unit ; set_suffix : string -> unit ; set_weight : int -> unit ; source_fid : string ; src_loc : Diffast_core.Spec.SB.Loc.t ; stripped_label : string ; subtree_equals : Spec.node_data_t -> bool ; successors : Spec.node_data_t Diffast_core.Spec.Otree.node2 Diffast_core.Spec.Xset.t ; to_be_notified : bool ; to_elem_data : string * (string * string) list * string ; to_elem_data_for_delta : string * (string * string) list * string ; to_rep : string ; to_short_string : string ; to_simple_string : string ; to_string : string ; weight : int > ; decide_collapsible_or_not : unit ; del_leftmost_child : unit -> unit ; del_rightmost_child : unit -> unit ; end_mutation : ?overwrite:bool -> unit -> unit ; expand : unit ; get_substances : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; gindex : Diffast_core.Spec.SB.Otree.GI.t ; has_hidden_parent : bool ; has_initial_parent : bool ; has_later_mutation : bool ; has_parent : bool ; hash : int ; hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; hidden_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; hide_parent : unit ; in_path : bool ; index : int ; init_mutation : unit -> unit ; initial_ancestor_nodes : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; initial_children_uids : Diffast_misc.UID.t list ; initial_nchildren : int ; initial_parent : 'a ; initial_pos : int ; initial_to_string : string ; insert_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; is_collapsed : bool ; is_contracted : bool ; is_leaf : bool ; is_valid : bool ; iter_initial_ancestor_nodes : (Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit) -> unit ; lock_collapse : unit ; nchildren : int ; nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option ; path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 Diffast_core.Spec.SB.Otree.path ; pos : int ; preorder_index : int ; print : unit ; prune : unit ; prune_all_children : unit ; prune_children : int list -> unit ; prune_initial_children : int list -> unit ; prune_nth_child : int -> unit ; replace_children : (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; replace_nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_apath : Diffast_misc.Path.t -> unit ; set_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_collapsible : unit ; set_data : Spec.node_data_t -> unit ; set_digest : Diffast_misc.Xhash.t -> unit ; set_gindex : Diffast_core.Spec.SB.Otree.GI.t -> unit ; set_hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_in_path : unit ; set_index : int -> unit ; set_initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_initial_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_initial_pos : int -> unit ; set_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option -> unit ; set_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; set_pos : int -> unit ; set_preorder_index : int -> unit ; to_dot : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str_ini : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_qualified_string : string ; to_rep : string ; to_string : string ; uid : Diffast_misc.UID.t ; unhide_parent : unit ; unlock_collapse : unit ; v_delete_child : int -> unit ; v_delete_children : int list -> unit ; v_insert_child : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_insert_children : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; v_update_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_update_children : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit > as 'a -> 'b) -> 'c -> 'd -> bool
val boundary_stable : (Diffast_misc.UID.t -> Diffast_misc.UID.t) -> (Diffast_misc.UID.t -> Diffast_misc.UID.t -> bool) -> < _replace_children : ?initial:bool -> (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; _set_is_collapsed : bool -> unit ; add_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_children_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_children_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_substance : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; apath : Diffast_misc.Path.t ; begin_mutation : unit -> unit ; children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; children_indexes : int list ; children_uids : Diffast_misc.UID.t list ; clear_collapsible : unit ; clear_in_path : unit ; collapse : int -> Diffast_misc.Xhash.t -> unit ; collapse_locked : bool ; collapse_not_locked : bool ; collapsible : bool ; data : Spec.node_data_t ; decide_collapsible_or_not : unit ; del_leftmost_child : unit -> unit ; del_rightmost_child : unit -> unit ; end_mutation : ?overwrite:bool -> unit -> unit ; expand : unit ; get_substances : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; gindex : Diffast_core.Spec.SB.Otree.GI.t ; has_hidden_parent : bool ; has_initial_parent : bool ; has_later_mutation : bool ; has_parent : bool ; hash : int ; hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; hidden_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; hide_parent : unit ; in_path : bool ; index : int ; init_mutation : unit -> unit ; initial_ancestor_nodes : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; initial_children_uids : Diffast_misc.UID.t list ; initial_nchildren : int ; initial_parent : 'b ; initial_pos : int ; initial_to_string : string ; insert_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; is_collapsed : bool ; is_contracted : bool ; is_leaf : bool ; is_valid : bool ; iter_initial_ancestor_nodes : (Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit) -> unit ; lock_collapse : unit ; nchildren : int ; nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option ; path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 Diffast_core.Spec.SB.Otree.path ; pos : int ; preorder_index : int ; print : unit ; prune : unit ; prune_all_children : unit ; prune_children : int list -> unit ; prune_initial_children : int list -> unit ; prune_nth_child : int -> unit ; replace_children : (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; replace_nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_apath : Diffast_misc.Path.t -> unit ; set_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_collapsible : unit ; set_data : Spec.node_data_t -> unit ; set_digest : Diffast_misc.Xhash.t -> unit ; set_gindex : Diffast_core.Spec.SB.Otree.GI.t -> unit ; set_hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_in_path : unit ; set_index : int -> unit ; set_initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_initial_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_initial_pos : int -> unit ; set_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option -> unit ; set_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; set_pos : int -> unit ; set_preorder_index : int -> unit ; to_dot : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str_ini : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_qualified_string : string ; to_rep : string ; to_string : string ; uid : Diffast_misc.UID.t ; unhide_parent : unit ; unlock_collapse : unit ; v_delete_child : int -> unit ; v_delete_children : int list -> unit ; v_insert_child : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_insert_children : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; v_update_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_update_children : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit > as 'a -> 'c -> bool
val get_bn_opt : < initial_parent : < data : < is_boundary : bool.. > ; initial_parent : 'a.. > as 'a.. > -> 'a option
val is_mapped_boundary_key : < find : 'a -> 'b.. > -> ('a option * 'b option) -> bool
val null_boundary_key : 'a option * 'b option
val bn_opt_to_str : < data : < to_string : string.. >.. > option -> string
val boundary_key_to_string : (< data : < to_string : string.. >.. > option * < data : < to_string : string.. >.. > option) -> string
class +'a multiple_node_matches : (Obj.t -> string) -> object ... end
type 'node_t subroot_members_t = 'node_t * 'node_t list
type 'node_t multiple_subtree_match_tbl_t = (Digest.t, 'node_t subroot_members_t list * 'node_t subroot_members_t list * int) Hashtbl.t
class +'a multiple_subtree_matches : < subtree_match_threshold : int.. > -> object ... end
class 'a pairs : object ... end
val get_orig_name : < data : < get_name : string ; get_orig_name : string ; get_stripped_name : string.. >.. > -> string
val get_stripped_name : < data : < get_stripped_name : 'a.. >.. > -> 'a
val stripped_orig_eq : < data : < _stripped_orig_label : 'a.. >.. > -> < data : < _stripped_orig_label : 'a.. >.. > -> bool
val is_def : < data : < binding : B.t.. >.. > -> bool
val is_non_local_def : < data : < binding : B.t.. >.. > -> bool
exception Elaboration_impossible
exception Abort
val is_crossing : < gindex : int.. > -> < gindex : int.. > -> < gindex : int.. > -> < gindex : int.. > -> bool
type weight_t =
  1. | W_int of int
  2. | W_float of float
  3. | W_int_int of int * int
val weight_of_int : int -> weight_t
val weight_of_float : float -> weight_t
val weight_of_int_int : int -> int -> weight_t
val weight_to_int : weight_t -> int
val weight_to_int_int : weight_t -> int * int
val weight_to_float : weight_t -> float
val weight_to_string : weight_t -> string
val wps : unit -> weight_t -> string
val weight_compare : weight_t -> weight_t -> int
class [+'a, +'b] c : < conflicting_pairs_threshold : int ; lock_matches_flag : bool ; mapped_neighbours_difference_threshold : float ; multi_node_match_flag : bool ; prematch_cands_threshold : int ; prematch_subtree_cands_threshold : int ; subtree_match_ratio_threshold : float ; use_adjacency_matches_flag : bool ; verbose_flag : bool.. > -> ?has_elaborate_edits:bool option -> 'b -> 'b -> object ... end
OCaml

Innovation. Community. Security.