Incremental.Sval sexp_of_state_witness : state_witness -> Sexplib0.Sexp.tinclude S_gen
with type 'a t = ('a, state_witness) t
with type Before_or_after.t = Before_or_after.t
with type Clock.t = state_witness Clock.t
with type 'a Cutoff.t = 'a Cutoff.t
with type 'a Expert.Dependency.t = ('a, state_witness) Expert.Dependency.t
with type 'a Expert.Node.t = ('a, state_witness) Expert.Node.t
with type Expert.Step_result.t = Expert.Step_result.t
with type 'a Observer.t = ('a, state_witness) Observer.t
with type 'a Observer.Update.t = 'a Observer.Update.t
with type Packed.t = Packed.t
with type Scope.t = state_witness Scope.t
with type State.t = state_witness State.t
with type State.Stats.t = State.Stats.t
with type ('a, 'b) Unordered_array_fold_update.t =
('a, 'b) Unordered_array_fold_update.t
with type 'a Update.t = 'a Update.t
with type 'a Var.t = ('a, state_witness) Var.tmodule State : sig ... endtype 'a t = ('a, state_witness) tval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.tinclude Core.Invariant.S1 with type 'a t := 'a tval invariant : ('a -> unit) -> 'a t -> unitval is_const : _ t -> boolval is_valid : _ t -> boolval is_necessary : _ t -> boolval const : 'a -> 'a tval return : 'a -> 'a tmodule Infix : sig ... endmodule Unordered_array_fold_update : sig ... endval unordered_array_fold :
?full_compute_every_n_changes:int ->
'a t array ->
init:'b ->
f:('b -> 'a -> 'b) ->
update:('a, 'b) Unordered_array_fold_update.t ->
'b tmodule Scope : sig ... endmodule Var : sig ... endmodule Observer : sig ... endval observe : ?should_finalize:bool -> 'a t -> 'a Observer.tmodule Update : sig ... endmodule Cutoff : sig ... endval lazy_from_fun : (unit -> 'a) -> 'a Core.Lazy.tval memoize_fun :
?initial_size:int ->
'a Base.Hashtbl.Key.t ->
('a -> 'b) ->
('a -> 'b) Core.Staged.tval memoize_fun_by_key :
?initial_size:int ->
'key Base.Hashtbl.Key.t ->
('a -> 'key) ->
('a -> 'b) ->
('a -> 'b) Core.Staged.tval weak_memoize_fun :
?initial_size:int ->
'a Base.Hashtbl.Key.t ->
('a -> 'b Core.Heap_block.t) ->
('a -> 'b Core.Heap_block.t) Core.Staged.tval weak_memoize_fun_by_key :
?initial_size:int ->
'key Base.Hashtbl.Key.t ->
('a -> 'key) ->
('a -> 'b Core.Heap_block.t) ->
('a -> 'b Core.Heap_block.t) Core.Staged.tval user_info : _ t -> Core.Info.t optionval set_user_info : _ t -> Core.Info.t option -> unitval append_user_info_graphviz :
_ t ->
label:string list ->
attrs:string Core.String.Map.t ->
unitmodule Node_value : sig ... endval node_value : 'a t -> 'a Node_value.tnode_value t returns whatever value t happens to have in it, regardless of whether t is valid, necessary, or stale. One should use observe for a more sensible semantics, reserving node_value for debugging.
module Packed : sig ... endval save_dot : ?emit_bind_edges:bool -> Format.formatter -> unitmodule Let_syntax : sig ... endmodule Before_or_after : sig ... endmodule Step_function = Incremental_step_functionmodule Clock : sig ... endmodule Expert : sig ... end