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_kernel__Types.Unordered_array_fold.t
=
{
main : 'acc Incremental_kernel__Types.Node.t; |
init : 'acc; |
f : 'acc ‑> 'a ‑> 'acc; |
f_inverse : 'acc ‑> 'a ‑> 'acc; |
full_compute_every_n_changes : int; |
children : 'a Incremental_kernel__Types.Node.t array; |
mutable fold_value : 'acc Incremental_kernel__.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_kernel__.Sexp_of.S2 with type (a, acc) t := (a, acc) t
include sig ... end
val sexp_of_t : ('a ‑> Base.Sexp.t) ‑> ('b ‑> Base.Sexp.t) ‑> ('a, 'b) t ‑> Base.Sexp.t
val create : init:'acc ‑> f:('acc ‑> 'a ‑> 'acc) ‑> f_inverse:('acc ‑> 'a ‑> 'acc) ‑> full_compute_every_n_changes:int ‑> children:'a Incremental_kernel__.Types.Node.t array ‑> main:'acc Incremental_kernel__.Types.Node.t ‑> ('a, 'acc) t
val compute : (_, 'acc) t ‑> 'acc
val child_changed : ('a, _) t ‑> old_value_opt:'a Incremental_kernel__.Uopt.t ‑> new_value:'a ‑> unit
val force_full_compute : (_, _) t ‑> unit