Module Incremental__.State
type status= Incremental__.Types.Status.t=|Stabilizing|Running_on_update_handlers|Not_stabilizing|Stabilize_previously_raised of Incremental__.Raised_exn.t
val sexp_of_status : status -> Ppx_sexp_conv_lib.Sexp.t
module Node_update = Incremental__.On_update_handler.Node_updatemodule Run_on_update_handlers : sig ... endmodule Only_in_debug : sig ... endmodule Packed_weak_hashtbl : sig ... endtype t= Incremental__.Types.State.t={mutable status : status;bind_lhs_change_should_invalidate_rhs : bool;mutable stabilization_num : Incremental__.Stabilization_num.t;mutable current_scope : Incremental.Scope.t;recompute_heap : Incremental__.Recompute_heap.t;adjust_heights_heap : Incremental__.Adjust_heights_heap.t;propagate_invalidity : Incremental__.Node.Packed.t Core_kernel.Stack.t;mutable num_active_observers : int;mutable all_observers : Incremental__.Internal_observer.Packed.t Incremental__.Import.Uopt.t;finalized_observers : Incremental__.Internal_observer.Packed.t Thread_safe_queue.t;new_observers : Incremental__.Internal_observer.Packed.t Core_kernel.Stack.t;disallowed_observers : Incremental__.Internal_observer.Packed.t Core_kernel.Stack.t;set_during_stabilization : Incremental.Var.Packed.t Core_kernel.Stack.t;handle_after_stabilization : Incremental__.Node.Packed.t Core_kernel.Stack.t;run_on_update_handlers : Run_on_update_handlers.t Core_kernel.Stack.t;mutable only_in_debug : Only_in_debug.t;weak_hashtbls : Packed_weak_hashtbl.t Thread_safe_queue.t;mutable keep_node_creation_backtrace : bool;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 keep_node_creation_backtrace : t -> boolval set_keep_node_creation_backtrace : t -> bool -> unitval weak_hashtbls : t -> Packed_weak_hashtbl.t Thread_safe_queue.tval only_in_debug : t -> Only_in_debug.tval set_only_in_debug : t -> Only_in_debug.t -> unitval run_on_update_handlers : t -> Run_on_update_handlers.t Core_kernel.Stack.tval handle_after_stabilization : t -> Incremental__.Node.Packed.t Core_kernel.Stack.tval set_during_stabilization : t -> Incremental.Var.Packed.t Core_kernel.Stack.tval disallowed_observers : t -> Incremental__.Internal_observer.Packed.t Core_kernel.Stack.tval new_observers : t -> Incremental__.Internal_observer.Packed.t Core_kernel.Stack.tval finalized_observers : t -> Incremental__.Internal_observer.Packed.t Thread_safe_queue.tval all_observers : t -> Incremental__.Internal_observer.Packed.t Incremental__.Import.Uopt.tval set_all_observers : t -> Incremental__.Internal_observer.Packed.t Incremental__.Import.Uopt.t -> unitval num_active_observers : t -> intval set_num_active_observers : t -> int -> unitval propagate_invalidity : t -> Incremental__.Node.Packed.t Core_kernel.Stack.tval adjust_heights_heap : t -> Incremental__.Adjust_heights_heap.tval recompute_heap : t -> Incremental__.Recompute_heap.tval current_scope : t -> Incremental.Scope.tval set_current_scope : t -> Incremental.Scope.t -> unitval stabilization_num : t -> Incremental__.Stabilization_num.tval set_stabilization_num : t -> Incremental__.Stabilization_num.t -> unitval bind_lhs_change_should_invalidate_rhs : t -> boolval status : t -> statusval set_status : t -> status -> unit
module Fields : sig ... endval sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
module Clock : sig ... endval now : Clock.t -> Incremental__.Import.Time_ns.tval timing_wheel_length : Clock.t -> intval num_stabilizes : t -> intval max_height_allowed : t -> intval max_height_seen : t -> intval iter_observers : t -> f:(Incremental__.Internal_observer.Packed.t -> 'a) -> unitval directly_observed : t -> Incremental__.Node.Packed.t listval save_dot : t -> string -> unitval iter_observer_descendants : t -> f:(Incremental__.Node.Packed.t -> unit) -> unit
module Stats : sig ... endval stats : t -> Stats.tval am_stabilizing : t -> boolval invariant : t -> unitval ensure_not_stabilizing : t -> name:string -> allow_in_update_handler:bool -> unitval set_height : 'a Incremental__.Node.t -> int -> unitval set_max_height_allowed : t -> int -> unitval handle_after_stabilization : a. 'a Incremental__.Node.t -> unitval remove_children : a. 'a Incremental__.Node.t -> unitval remove_child : a b. child:'b Incremental__.Node.t -> parent:'a Incremental__.Node.t -> child_index:int -> unitval check_if_unnecessary : a. 'a Incremental__.Node.t -> unitval became_unnecessary : a. 'a Incremental__.Node.t -> unitval remove_alarm : Clock.t -> Incremental__.Alarm_value.t Timing_wheel.Alarm.t -> unitval invalidate_node : a. 'a Incremental__.Node.t -> unitval invalidate_nodes_created_on_rhs : Incremental__Types.Node.Packed.t Incremental__.Import.Uopt.t -> unitval rescope_nodes_created_on_rhs : 'a -> Incremental__.Node.Packed.t Incremental__.Import.Uopt.t -> new_scope:Incremental.Scope.t -> unitval propagate_invalidity : t -> unitval add_parent_without_adjusting_heights : a b. child:'a Incremental__.Node.t -> parent:'b Incremental__.Node.t -> child_index:int -> unitval became_necessary : a. 'a Incremental__.Node.t -> unitval became_necessary : 'a Incremental__.Node.t -> unitval add_parent : child:'a Incremental__.Node.t -> parent:'b Incremental__.Node.t -> child_index:int -> unitval run_with_scope : t -> Incremental.Scope.t -> f:(unit -> 'a) -> 'aval within_scope : t -> Incremental.Scope.t -> f:(unit -> 'a) -> 'aval change_child : a b. parent:'a Incremental__.Node.t -> old_child:'b Incremental__.Node.t Incremental__.Import.Uopt.t -> new_child:'b Incremental__.Node.t -> child_index:int -> unitval add_alarm : Clock.t -> at:Incremental__.Import.Time_ns.t -> Incremental__.Alarm_value.t -> Incremental__.Alarm_value.t Timing_wheel.Alarm.tval recompute : a. 'a Incremental__.Node.t -> unitval copy_child : a. parent:'a Incremental__.Node.t -> child:'a Incremental__.Node.t -> unitval maybe_change_value : a. 'a Incremental__.Node.t -> 'a -> unitval recompute_everything_that_is_necessary : t -> unitval unlink_disallowed_observers : t -> unitval disallow_future_use : 'a Incremental__.Internal_observer.t -> unitval disallow_finalized_observers : t -> unitval observer_finalizer : t -> ('a Incremental__.Types.Internal_observer.t Core_kernel.ref -> unit) Core_kernel__.Import.Staged.tval create_observer : ?should_finalize:bool -> 'a Incremental__.Node.t -> 'a Incremental__.Internal_observer.t Core_kernel.refval add_new_observers : t -> unitval observer_value_exn : 'a Incremental.Observer.t -> 'aval observer_value : 'a Incremental.Observer.t -> ('a, Core_kernel.Error.t) Core_kernel._resultval node_on_update : 'a Incremental__.Node.t -> f:('a Incremental__.On_update_handler.Node_update.t -> unit) -> unitval observer_on_update_exn : 'a Incremental.Observer.t -> f:('a Incremental__.On_update_handler.Node_update.t -> unit) -> unitval set_var_while_not_stabilizing : 'a Incremental.Var.t -> 'a -> unitval set_var : 'a Incremental.Var.t -> 'a -> unitval reclaim_space_in_weak_hashtbls : t -> unitval stabilize : t -> unitval create_node_in : t -> Incremental.Scope.t -> 'a Incremental__.Kind.t -> 'a Incremental__.Node.tval create_node : t -> 'a Incremental__.Kind.t -> 'a Incremental__.Node.tval create_node_top : t -> 'a Incremental__.Kind.t -> 'a Incremental__.Node.tval create_var : t -> ?use_current_scope:bool -> 'a -> 'a Incremental.Var.tval const : t -> 'a -> 'a Incremental__.Node.tval map : 'a Incremental__.Node.t -> f:('a -> 'b) -> 'b Incremental__.Node.tval map2 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> f:('a -> 'b -> 'c) -> 'c Incremental__.Node.tval map3 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd) -> 'd Incremental__.Node.tval map4 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e) -> 'e Incremental__.Node.tval map5 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f) -> 'f Incremental__.Node.tval map6 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> 'f Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g) -> 'g Incremental__.Node.tval map7 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> 'f Incremental__Types.Node.t -> 'g Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h) -> 'h Incremental__.Node.tval map8 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> 'f Incremental__Types.Node.t -> 'g Incremental__Types.Node.t -> 'h Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i) -> 'i Incremental__.Node.tval map9 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> 'f Incremental__Types.Node.t -> 'g Incremental__Types.Node.t -> 'h Incremental__Types.Node.t -> 'i Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i -> 'j) -> 'j Incremental__.Node.tval map10 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> 'f Incremental__Types.Node.t -> 'g Incremental__Types.Node.t -> 'h Incremental__Types.Node.t -> 'i Incremental__Types.Node.t -> 'j Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i -> 'j -> 'k) -> 'k Incremental__.Node.tval map11 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> 'f Incremental__Types.Node.t -> 'g Incremental__Types.Node.t -> 'h Incremental__Types.Node.t -> 'i Incremental__Types.Node.t -> 'j Incremental__Types.Node.t -> 'k Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i -> 'j -> 'k -> 'l) -> 'l Incremental__.Node.tval map12 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> 'f Incremental__Types.Node.t -> 'g Incremental__Types.Node.t -> 'h Incremental__Types.Node.t -> 'i Incremental__Types.Node.t -> 'j Incremental__Types.Node.t -> 'k Incremental__Types.Node.t -> 'l Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i -> 'j -> 'k -> 'l -> 'm) -> 'm Incremental__.Node.tval map13 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> 'f Incremental__Types.Node.t -> 'g Incremental__Types.Node.t -> 'h Incremental__Types.Node.t -> 'i Incremental__Types.Node.t -> 'j Incremental__Types.Node.t -> 'k Incremental__Types.Node.t -> 'l Incremental__Types.Node.t -> 'm Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i -> 'j -> 'k -> 'l -> 'm -> 'n) -> 'n Incremental__.Node.tval map14 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> 'f Incremental__Types.Node.t -> 'g Incremental__Types.Node.t -> 'h Incremental__Types.Node.t -> 'i Incremental__Types.Node.t -> 'j Incremental__Types.Node.t -> 'k Incremental__Types.Node.t -> 'l Incremental__Types.Node.t -> 'm Incremental__Types.Node.t -> 'n Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i -> 'j -> 'k -> 'l -> 'm -> 'n -> 'o) -> 'o Incremental__.Node.tval map15 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> 'e Incremental__Types.Node.t -> 'f Incremental__Types.Node.t -> 'g Incremental__Types.Node.t -> 'h Incremental__Types.Node.t -> 'i Incremental__Types.Node.t -> 'j Incremental__Types.Node.t -> 'k Incremental__Types.Node.t -> 'l Incremental__Types.Node.t -> 'm Incremental__Types.Node.t -> 'n Incremental__Types.Node.t -> 'o Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i -> 'j -> 'k -> 'l -> 'm -> 'n -> 'o -> 'p) -> 'p Incremental__.Node.tval preserve_cutoff : input:'a Incremental__.Node.t -> output:'b Incremental__.Node.t -> unitval depend_on : 'a Incremental__.Node.t -> depend_on:'b Incremental__Types.Node.t -> 'a Incremental__.Node.tval necessary_if_alive : 'a Incremental__.Node.t -> 'a Incremental__.Node.tval bind : 'a Incremental__.Node.t -> f:('a -> 'b Incremental__Types.Node.t) -> 'b Incremental__.Node.tval bind2 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> f:('a -> 'b -> 'c Incremental__Types.Node.t) -> 'c Incremental__.Node.tval bind3 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd Incremental__Types.Node.t) -> 'd Incremental__.Node.tval bind4 : 'a Incremental__.Node.t -> 'b Incremental__Types.Node.t -> 'c Incremental__Types.Node.t -> 'd Incremental__Types.Node.t -> f:('a -> 'b -> 'c -> 'd -> 'e Incremental__Types.Node.t) -> 'e Incremental__.Node.tval join : 'a Incremental__Types.Node.t Incremental__.Node.t -> 'a Incremental__.Node.tval if_ : bool Incremental__.Node.t -> then_:'a Incremental__Types.Node.t -> else_:'a Incremental__Types.Node.t -> 'a Incremental__.Node.tval lazy_from_fun : t -> f:(unit -> 'a) -> 'a Core_kernel.Lazy.tval default_hash_table_initial_size : intval memoize_fun_by_key : ?initial_size:int -> t -> 'a Base__.Hashtbl_intf.Key.t -> ('b -> 'a Core_kernel.Hashtbl.key) -> ('b -> 'c) -> ('b -> 'c) Core_kernel__.Import.Staged.tval array_fold : t -> 'a Incremental__Types.Node.t Incremental__.Import.Array.t -> init:'b -> f:('b -> 'a -> 'b) -> 'b Incremental__.Node.tval all : t -> 'a Incremental__Types.Node.t list -> 'a list Incremental__.Node.t
module Unordered_array_fold_update = Incremental__.Unordered_array_fold.Updateval unordered_array_fold : t -> ?full_compute_every_n_changes:Core_kernel.Int.t -> 'a Incremental__.Types.Node.t Incremental__.Import.Array.t -> init:'b -> f:('b -> 'a -> 'b) -> update:('a, 'b) Incremental__.Unordered_array_fold.Update.t -> 'b Incremental__.Node.tval opt_unordered_array_fold : t -> ?full_compute_every_n_changes:Core_kernel.Int.t -> 'a option Incremental__.Types.Node.t Incremental__.Import.Array.t -> init:'b -> f:('b -> 'a -> 'b) -> f_inverse:('b -> 'a -> 'b) -> 'b option Incremental__.Node.tval at_least_k_of : t -> bool Incremental__.Types.Node.t Incremental__.Import.Array.t -> k:Core_kernel__Int.t -> bool Incremental__.Node.tval exists : t -> bool Incremental__.Types.Node.t Incremental__.Import.Array.t -> bool Incremental__.Node.tval for_all : t -> bool Incremental__.Types.Node.t Incremental__.Import.Array.t -> bool Incremental__.Node.tval sum : t -> ?full_compute_every_n_changes:Core_kernel.Int.t -> 'a Incremental__.Types.Node.t Incremental__.Import.Array.t -> zero:'b -> add:('b -> 'a -> 'b) -> sub:('b -> 'a -> 'b) -> 'b Incremental__.Node.tval opt_sum : t -> ?full_compute_every_n_changes:Core_kernel.Int.t -> 'a option Incremental__.Types.Node.t Incremental__.Import.Array.t -> zero:'b -> add:('b -> 'a -> 'b) -> sub:('b -> 'a -> 'b) -> 'b option Incremental__.Node.tval sum_int : t -> int Incremental__.Types.Node.t Incremental__.Import.Array.t -> int Incremental__.Node.tval sum_float : t -> float Incremental__.Types.Node.t Incremental__.Import.Array.t -> float Incremental__.Node.tval set_freeze : 'a Incremental__.Node.t -> child:'a Incremental__.Node.t -> only_freeze_when:('a -> bool) -> unitval freeze : 'a Incremental__.Node.t -> only_freeze_when:('a -> bool) -> 'a Incremental__.Node.tval at : Clock.t -> Incremental__.Import.Time_ns.t -> Incremental.Before_or_after.t Incremental__.Node.tval after : Clock.t -> Incremental__.Import.Time_ns.Span.t -> Incremental.Before_or_after.t Incremental__.Node.tval next_interval_alarm_strict : Clock.t -> base:Incremental__.Import.Time_ns.t -> interval:Incremental__.Import.Time_ns.Span.t -> Incremental__.Import.Time_ns.tval at_intervals : Clock.t -> Incremental__.Import.Time_ns.Span.t -> unit Incremental__.Node.tval snapshot : Clock.t -> 'a Incremental__.Node.t -> at:Incremental__.Import.Time_ns.t -> before:'a -> 'a Incremental__.Node.t Core_kernel.Or_error.tval incremental_step_function : Clock.t -> 'a Incremental__.Import.Step_function.t Incremental__Types.Node.t -> 'a Incremental__.Node.tval make_stale : 'a Incremental__.Node.t -> unitval advance_clock : Clock.t -> to_:Incremental__.Import.Time_ns.t -> unitval create_clock : t -> timing_wheel_config:Timing_wheel.Config.t -> start:Core_kernel.Time_ns.t -> Clock.tval create : (module Incremental.Config.Incremental_config) -> max_height_allowed:int -> tval weak_memoize_fun_by_key : ?initial_size:int -> t -> (module Weak_hashtbl__.Import.Hashtbl.Key_plain with type t = 'a) -> ('b -> 'a) -> ('b -> 'c Weak_hashtbl__.Import.Heap_block.t) -> ('b -> 'c Weak_hashtbl__.Import.Heap_block.t) Core_kernel__.Import.Staged.t
module Expert : sig ... end