type status = | Stabilizing |
| Running_on_update_handlers |
| Not_stabilizing |
| Stabilize_previously_raised of Incremental_kernel__.Raised_exn.t |
val sexp_of_status : status ‑> Base.Sexp.tmodule Node_update = Incremental_kernel__.On_update_handler.Node_updatemodule Run_on_update_handlers : sig ... endmodule Only_in_debug : sig ... endtype t = {mutable status : status; |
bind_lhs_change_should_invalidate_rhs : bool; |
mutable stabilization_num : Incremental_kernel__.Stabilization_num.t; |
mutable current_scope : Incremental_kernel__.Scope.t; |
recompute_heap : Incremental_kernel__.Recompute_heap.t; |
adjust_heights_heap : Incremental_kernel__.Adjust_heights_heap.t; |
propagate_invalidity : Incremental_kernel__.Node.Packed.t Core_kernel.Stack.t; |
mutable num_active_observers : int; |
mutable all_observers : Incremental_kernel__.Internal_observer.Packed.t Incremental_kernel__.Uopt.t; |
finalized_observers : Incremental_kernel__.Internal_observer.Packed.t Core_kernel.Thread_safe_queue.t; |
new_observers : Incremental_kernel__.Internal_observer.Packed.t Core_kernel.Stack.t; |
disallowed_observers : Incremental_kernel__.Internal_observer.Packed.t Core_kernel.Stack.t; |
set_during_stabilization : Incremental_kernel__.Var.Packed.t Core_kernel.Stack.t; |
handle_after_stabilization : Incremental_kernel__.Node.Packed.t Core_kernel.Stack.t; |
run_on_update_handlers : Run_on_update_handlers.t Core_kernel.Stack.t; |
timing_wheel : Incremental_kernel__.Alarm_value.t Core_kernel.Timing_wheel_ns.t; |
mutable now : Incremental_kernel__.Import.Time_ns.t Incremental_kernel__.Var.t; |
handle_fired : Incremental_kernel__.Alarm.t ‑> unit; |
mutable fired_alarm_values : Incremental_kernel__.Alarm_value.t Incremental_kernel__.Uopt.t; |
mutable only_in_debug : Only_in_debug.t; |
mutable num_nodes_became_necessary : int; |
mutable num_nodes_became_unnecessary : int; |
mutable num_nodes_changed : int; |
mutable num_nodes_created : int; |
mutable num_nodes_invalidated : int; |
mutable num_nodes_recomputed : int; |
mutable num_nodes_recomputed_directly_because_one_child : int; |
mutable num_nodes_recomputed_directly_because_min_height : int; |
mutable num_var_sets : int; |
}val num_var_sets : t ‑> intval set_num_var_sets : t ‑> int ‑> unitval num_nodes_recomputed_directly_because_min_height : t ‑> intval set_num_nodes_recomputed_directly_because_min_height : t ‑> int ‑> unitval num_nodes_recomputed_directly_because_one_child : t ‑> intval set_num_nodes_recomputed_directly_because_one_child : t ‑> int ‑> unitval num_nodes_recomputed : t ‑> intval set_num_nodes_recomputed : t ‑> int ‑> unitval num_nodes_invalidated : t ‑> intval set_num_nodes_invalidated : t ‑> int ‑> unitval num_nodes_created : t ‑> intval set_num_nodes_created : t ‑> int ‑> unitval num_nodes_changed : t ‑> intval set_num_nodes_changed : t ‑> int ‑> unitval num_nodes_became_unnecessary : t ‑> intval set_num_nodes_became_unnecessary : t ‑> int ‑> unitval num_nodes_became_necessary : t ‑> intval set_num_nodes_became_necessary : t ‑> int ‑> unitval only_in_debug : t ‑> Only_in_debug.tval set_only_in_debug : t ‑> Only_in_debug.t ‑> unitval fired_alarm_values : t ‑> Incremental_kernel__.Alarm_value.t Incremental_kernel__.Uopt.tval set_fired_alarm_values : t ‑> Incremental_kernel__.Alarm_value.t Incremental_kernel__.Uopt.t ‑> unitval handle_fired : t ‑> Incremental_kernel__.Alarm.t ‑> unitval set_now : t ‑> Incremental_kernel__.Import.Time_ns.t Incremental_kernel__.Var.t ‑> unitval timing_wheel : t ‑> Incremental_kernel__.Alarm_value.t Core_kernel.Timing_wheel_ns.tval run_on_update_handlers : t ‑> Run_on_update_handlers.t Core_kernel.Stack.tval handle_after_stabilization : t ‑> Incremental_kernel__.Node.Packed.t Core_kernel.Stack.tval set_during_stabilization : t ‑> Incremental_kernel__.Var.Packed.t Core_kernel.Stack.tval disallowed_observers : t ‑> Incremental_kernel__.Internal_observer.Packed.t Core_kernel.Stack.tval new_observers : t ‑> Incremental_kernel__.Internal_observer.Packed.t Core_kernel.Stack.tval finalized_observers : t ‑> Incremental_kernel__.Internal_observer.Packed.t Core_kernel.Thread_safe_queue.tval all_observers : t ‑> Incremental_kernel__.Internal_observer.Packed.t Incremental_kernel__.Uopt.tval set_all_observers : t ‑> Incremental_kernel__.Internal_observer.Packed.t Incremental_kernel__.Uopt.t ‑> unitval num_active_observers : t ‑> intval set_num_active_observers : t ‑> int ‑> unitval propagate_invalidity : t ‑> Incremental_kernel__.Node.Packed.t Core_kernel.Stack.tval adjust_heights_heap : t ‑> Incremental_kernel__.Adjust_heights_heap.tval recompute_heap : t ‑> Incremental_kernel__.Recompute_heap.tval current_scope : t ‑> Incremental_kernel__.Scope.tval set_current_scope : t ‑> Incremental_kernel__.Scope.t ‑> unitval stabilization_num : t ‑> Incremental_kernel__.Stabilization_num.tval set_stabilization_num : t ‑> Incremental_kernel__.Stabilization_num.t ‑> unitval bind_lhs_change_should_invalidate_rhs : t ‑> boolmodule Fields : sig ... endval sexp_of_t : t ‑> Base.Sexp.tval now : t ‑> Incremental_kernel__.Import.Time_ns.tval timing_wheel_length : t ‑> Core_kernel__.Import.intval num_stabilizes : t ‑> intval max_height_allowed : t ‑> intval max_height_seen : t ‑> intval alarm_would_have_fired : t ‑> at:Core_kernel.Timing_wheel_ns.Time.t ‑> boolval iter_observers : t ‑> f:(Incremental_kernel__.Internal_observer.Packed.t ‑> 'a) ‑> unitval directly_observed : t ‑> Incremental_kernel__.Node.Packed.t listval save_dot : t ‑> string ‑> unitval iter_observer_descendants : t ‑> f:(Incremental_kernel__.Node.Packed.t ‑> unit) ‑> unitmodule Stats : sig ... endval am_stabilizing : t ‑> boolval invariant : t ‑> unitval ensure_not_stabilizing : t ‑> name:string ‑> allow_in_update_handler:bool ‑> unitval set_height : t ‑> 'a Incremental_kernel__.Types.Node.t ‑> int ‑> unitval set_max_height_allowed : t ‑> int ‑> unitval handle_after_stabilization : a. t ‑> 'a Incremental_kernel__.Node.t ‑> unitval remove_children : a. t ‑> 'a Incremental_kernel__.Node.t ‑> unitval remove_child : a b. t ‑> child:'b Incremental_kernel__.Node.t ‑> parent:'a Incremental_kernel__.Node.t ‑> child_index:int ‑> unitval check_if_unnecessary : a. t ‑> 'a Incremental_kernel__.Node.t ‑> unitval became_unnecessary : a. t ‑> 'a Incremental_kernel__.Node.t ‑> unitval remove_alarm : t ‑> Incremental_kernel__.Alarm_value.t Core_kernel.Timing_wheel_ns.Alarm.t ‑> Core_kernel__.Import.unitval invalidate_node : a. t ‑> 'a Incremental_kernel__.Node.t ‑> unitval invalidate_nodes_created_on_rhs : t ‑> Incremental_kernel__Types.Packed_node.t Incremental_kernel__.Uopt.t ‑> Core_kernel__.Import.unitval rescope_nodes_created_on_rhs : 'a ‑> Incremental_kernel__.Should_not_use.t Incremental_kernel__.Node.t Incremental_kernel__.Uopt.t ‑> new_scope:Incremental_kernel__.Scope.t ‑> unitval propagate_invalidity : t ‑> unitval add_parent_without_adjusting_heights : a b. t ‑> child:'a Incremental_kernel__.Node.t ‑> parent:'b Incremental_kernel__.Node.t ‑> child_index:int ‑> unitval became_necessary : a. t ‑> 'a Incremental_kernel__.Node.t ‑> unitval became_necessary : t ‑> 'a Incremental_kernel__.Node.t ‑> unitval add_parent : t ‑> child:'a Incremental_kernel__.Node.t ‑> parent:'b Incremental_kernel__.Node.t ‑> child_index:int ‑> unitval run_with_scope : t ‑> Incremental_kernel__.Scope.t ‑> f:(unit ‑> 'a) ‑> 'aval within_scope : t ‑> Incremental_kernel__.Scope.t ‑> f:(unit ‑> 'a) ‑> 'aval change_child : a b. t ‑> parent:'a Incremental_kernel__.Node.t ‑> old_child:'b Incremental_kernel__.Node.t Incremental_kernel__.Uopt.t ‑> new_child:'b Incremental_kernel__.Node.t ‑> child_index:int ‑> unitval recompute : a. t ‑> 'a Incremental_kernel__.Node.t ‑> unitval copy_child : a. t ‑> parent:'a Incremental_kernel__.Node.t ‑> child:'a Incremental_kernel__.Node.t ‑> unitval maybe_change_value : a. t ‑> 'a Incremental_kernel__.Node.t ‑> 'a ‑> unitval recompute_everything_that_is_necessary : t ‑> unitval unlink_disallowed_observers : t ‑> unitval disallow_future_use : t ‑> 'a Incremental_kernel__.Internal_observer.t ‑> Core_kernel__.Import.unitval disallow_finalized_observers : t ‑> unitval observer_finalizer : t ‑> ('a Incremental_kernel__.Internal_observer.t Core_kernel.ref ‑> Core_kernel__.Import.unit) Core_kernel__.Import.Staged.tval create_observer : ?should_finalize:bool ‑> t ‑> 'a Incremental_kernel__.Node.t ‑> 'a Incremental_kernel__.Internal_observer.t Core_kernel.refval add_new_observers : t ‑> unitval observer_value_exn : t ‑> 'a Incremental_kernel__.Observer.t ‑> 'aval observer_value : t ‑> 'a Incremental_kernel__.Observer.t ‑> ('a, Core_kernel.Error.t) Core_kernel._resultval node_on_update : t ‑> 'a Incremental_kernel__.Node.t ‑> f:('a Incremental_kernel__.On_update_handler.Node_update.t ‑> unit) ‑> unitval observer_on_update_exn : t ‑> 'a Incremental_kernel__.Observer.t ‑> f:('a Incremental_kernel__.On_update_handler.Node_update.t ‑> unit) ‑> unitval set_var_while_not_stabilizing : t ‑> 'a Incremental_kernel__.Var.t ‑> 'a ‑> unitval set_var : t ‑> 'a Incremental_kernel__.Var.t ‑> 'a ‑> unitval stabilize : t ‑> Core_kernel__.Import.unitval create_node_in : t ‑> Incremental_kernel__.Scope.t ‑> 'a Incremental_kernel__.Kind.t ‑> 'a Incremental_kernel__.Node.tval create_node : t ‑> 'a Incremental_kernel__.Kind.t ‑> 'a Incremental_kernel__.Node.tval create_node_top : t ‑> 'a Incremental_kernel__.Kind.t ‑> 'a Incremental_kernel__.Node.tval create_var : ?use_current_scope:bool ‑> t ‑> 'a ‑> 'a Incremental_kernel__.Var.tval const : t ‑> 'a ‑> 'a Incremental_kernel__.Node.tval map : t ‑> 'a Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b) ‑> 'b Incremental_kernel__.Node.tval map2 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c) ‑> 'c Incremental_kernel__.Node.tval map3 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> 'c Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c ‑> 'd) ‑> 'd Incremental_kernel__.Node.tval map4 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> 'c Incremental_kernel__Types.Node.t ‑> 'd Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c ‑> 'd ‑> 'e) ‑> 'e Incremental_kernel__.Node.tval map5 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> 'c Incremental_kernel__Types.Node.t ‑> 'd Incremental_kernel__Types.Node.t ‑> 'e Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c ‑> 'd ‑> 'e ‑> 'f) ‑> 'f Incremental_kernel__.Node.tval map6 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> 'c Incremental_kernel__Types.Node.t ‑> 'd Incremental_kernel__Types.Node.t ‑> 'e Incremental_kernel__Types.Node.t ‑> 'f Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c ‑> 'd ‑> 'e ‑> 'f ‑> 'g) ‑> 'g Incremental_kernel__.Node.tval map7 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> 'c Incremental_kernel__Types.Node.t ‑> 'd Incremental_kernel__Types.Node.t ‑> 'e Incremental_kernel__Types.Node.t ‑> 'f Incremental_kernel__Types.Node.t ‑> 'g Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c ‑> 'd ‑> 'e ‑> 'f ‑> 'g ‑> 'h) ‑> 'h Incremental_kernel__.Node.tval map8 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> 'c Incremental_kernel__Types.Node.t ‑> 'd Incremental_kernel__Types.Node.t ‑> 'e Incremental_kernel__Types.Node.t ‑> 'f Incremental_kernel__Types.Node.t ‑> 'g Incremental_kernel__Types.Node.t ‑> 'h Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c ‑> 'd ‑> 'e ‑> 'f ‑> 'g ‑> 'h ‑> 'i) ‑> 'i Incremental_kernel__.Node.tval map9 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> 'c Incremental_kernel__Types.Node.t ‑> 'd Incremental_kernel__Types.Node.t ‑> 'e Incremental_kernel__Types.Node.t ‑> 'f Incremental_kernel__Types.Node.t ‑> 'g Incremental_kernel__Types.Node.t ‑> 'h Incremental_kernel__Types.Node.t ‑> 'i Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c ‑> 'd ‑> 'e ‑> 'f ‑> 'g ‑> 'h ‑> 'i ‑> 'j) ‑> 'j Incremental_kernel__.Node.tval preserve_cutoff : input:'a Incremental_kernel__.Node.t ‑> output:'b Incremental_kernel__.Node.t ‑> unitval depend_on : t ‑> 'a Incremental_kernel__.Node.t ‑> depend_on:'b Incremental_kernel__Types.Node.t ‑> 'a Incremental_kernel__.Node.tval necessary_if_alive : t ‑> 'a Incremental_kernel__.Node.t ‑> 'a Incremental_kernel__.Node.tval bind : t ‑> 'a Incremental_kernel__.Node.t ‑> f:('a ‑> 'b Incremental_kernel__Types.Node.t) ‑> 'b Incremental_kernel__.Node.tval bind2 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c Incremental_kernel__Types.Node.t) ‑> 'c Incremental_kernel__.Node.tval bind3 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> 'c Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c ‑> 'd Incremental_kernel__Types.Node.t) ‑> 'd Incremental_kernel__.Node.tval bind4 : t ‑> 'a Incremental_kernel__Types.Node.t ‑> 'b Incremental_kernel__Types.Node.t ‑> 'c Incremental_kernel__Types.Node.t ‑> 'd Incremental_kernel__Types.Node.t ‑> f:('a ‑> 'b ‑> 'c ‑> 'd ‑> 'e Incremental_kernel__Types.Node.t) ‑> 'e Incremental_kernel__.Node.tval join : t ‑> 'a Incremental_kernel__Types.Node.t Incremental_kernel__Types.Node.t ‑> 'a Incremental_kernel__.Node.tval if_ : t ‑> bool Incremental_kernel__Types.Node.t ‑> then_:'a Incremental_kernel__Types.Node.t ‑> else_:'a Incremental_kernel__Types.Node.t ‑> 'a Incremental_kernel__.Node.tval lazy_from_fun : t ‑> f:(unit ‑> 'a) ‑> 'a Core_kernel.Lazy.tval memoize_fun_by_key : ?initial_size:Core_kernel__.Import.int ‑> t ‑> 'a Core_kernel__Hashtbl.key Core_kernel.Hashtbl_intf.Hashable.t ‑> ('b ‑> 'a Core_kernel.Hashtbl.key) ‑> ('b ‑> 'c) ‑> ('b ‑> 'c) Core_kernel__.Import.Staged.tval array_fold : t ‑> 'a Incremental_kernel__.Node.t Core_kernel__.Import.array ‑> init:'b ‑> f:('b ‑> 'a ‑> 'b) ‑> 'b Incremental_kernel__.Node.tval all : t ‑> 'a Incremental_kernel__.Node.t list ‑> 'a list Incremental_kernel__.Node.tval unordered_array_fold : ?full_compute_every_n_changes:Core_kernel.Int.t ‑> t ‑> 'a Incremental_kernel__.Node.t Core_kernel__.Import.array ‑> init:'b ‑> f:('b ‑> 'a ‑> 'b) ‑> f_inverse:('b ‑> 'a ‑> 'b) ‑> 'b Incremental_kernel__.Node.tval opt_unordered_array_fold : ?full_compute_every_n_changes:Core_kernel.Int.t ‑> t ‑> 'a option Incremental_kernel__.Node.t Core_kernel__.Import.array ‑> init:'b ‑> f:('b ‑> 'a ‑> 'b) ‑> f_inverse:('b ‑> 'a ‑> 'b) ‑> 'b option Incremental_kernel__.Node.tval at_least_k_of : t ‑> bool Incremental_kernel__.Node.t Core_kernel__.Import.array ‑> k:Core_kernel__Int.t ‑> bool Incremental_kernel__.Node.tval exists : t ‑> bool Incremental_kernel__.Node.t Core_kernel__.Import.array ‑> bool Incremental_kernel__.Node.tval for_all : t ‑> bool Incremental_kernel__.Node.t Core_kernel__.Import.array ‑> bool Incremental_kernel__.Node.tval sum : ?full_compute_every_n_changes:Core_kernel.Int.t ‑> t ‑> 'a Incremental_kernel__.Node.t Core_kernel__.Import.array ‑> zero:'b ‑> add:('b ‑> 'a ‑> 'b) ‑> sub:('b ‑> 'a ‑> 'b) ‑> 'b Incremental_kernel__.Node.tval opt_sum : ?full_compute_every_n_changes:Core_kernel.Int.t ‑> t ‑> 'a option Incremental_kernel__.Node.t Core_kernel__.Import.array ‑> zero:'b ‑> add:('b ‑> 'a ‑> 'b) ‑> sub:('b ‑> 'a ‑> 'b) ‑> 'b option Incremental_kernel__.Node.tval sum_int : t ‑> int Incremental_kernel__.Node.t Core_kernel__.Import.array ‑> int Incremental_kernel__.Node.tval sum_float : t ‑> float Incremental_kernel__.Node.t Incremental_kernel__.Import.Array.t ‑> float Incremental_kernel__.Node.tval set_freeze : t ‑> 'a Incremental_kernel__.Node.t ‑> child:'a Incremental_kernel__.Node.t ‑> only_freeze_when:('a ‑> bool) ‑> unitval freeze : t ‑> 'a Incremental_kernel__.Node.t ‑> only_freeze_when:('a ‑> bool) ‑> 'a Incremental_kernel__.Node.tval next_interval_alarm : t ‑> base:Incremental_kernel__.Import.Time_ns.t ‑> interval:Core_kernel.Time_ns.Span.t ‑> Incremental_kernel__.Import.Time_ns.tval at_intervals : t ‑> Incremental_kernel__.Import.Time_ns.Span.t ‑> unit Incremental_kernel__.Node.tval snapshot : t ‑> 'a Incremental_kernel__Types.Node.t ‑> at:Incremental_kernel__.Import.Time_ns.t ‑> before:'a ‑> 'a Incremental_kernel__.Node.t Core_kernel.Or_error.tval advance_step_function : t ‑> 'a Incremental_kernel__.Node.t ‑> 'a Incremental_kernel__.Step_function.t ‑> Incremental_kernel__.Alarm_value.t ‑> unitval step_function : t ‑> init:'a ‑> (Incremental_kernel__.Import.Time_ns.t * 'a) Core_kernel.List.t ‑> 'a Incremental_kernel__.Node.tval change_leaf : t ‑> 'a Incremental_kernel__.Node.t ‑> unitval advance_clock : t ‑> to_:Core_kernel.Time_ns.t ‑> unitval create : (module Incremental_kernel.Config.Incremental_config) ‑> max_height_allowed:int ‑> tmodule Expert : sig ... end