Module Incremental__Unordered_array_fold
A module internal to Incremental. Users should see Incremental_intf.
An ('a, 'acc) Unordered_array_fold.t is a kind of DAG node, where 'a is the type of value being folded and 'acc is the type of the accumulator.
include module type of sig ... end
type ('a, 'acc) t= ('a, 'acc) Incremental__Types.Unordered_array_fold.t={main : 'acc Incremental__Types.Node.t;init : 'acc;f : 'acc -> 'a -> 'acc;update : 'acc -> old_value:'a -> new_value:'a -> 'acc;full_compute_every_n_changes : int;children : 'a Incremental__Types.Node.t array;mutable fold_value : 'acc Incremental__.Import.Uopt.t;mutable num_changes_since_last_full_compute : int;}
include Core_kernel.Invariant.S2 with type ('a, 'acc) t := ('a, 'acc) t
val invariant : 'a Base__.Invariant_intf.inv -> 'b Base__.Invariant_intf.inv -> ('a, 'b) t Base__.Invariant_intf.inv
include Incremental__.Sexp_of.S2 with type ('a, 'acc) t := ('a, 'acc) t
val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> ('b -> Ppx_sexp_conv_lib.Sexp.t) -> ('a, 'b) t -> Ppx_sexp_conv_lib.Sexp.t
module Update : sig ... endval create : init:'acc -> f:('acc -> 'a -> 'acc) -> update:('a, 'acc) Update.t -> full_compute_every_n_changes:int -> children:'a Incremental__.Types.Node.t array -> main:'acc Incremental__.Types.Node.t -> ('a, 'acc) tval compute : (_, 'acc) t -> 'accval child_changed : ('a, _) t -> child:'b Incremental__.Types.Node.t -> child_index:int -> old_value_opt:'b Incremental__.Import.Uopt.t -> new_value:'b -> unitval force_full_compute : (_, _) t -> unit