A module internal to Incremental. Users should see Incremental_intf.
An observer is a "handle" to an Internal_observer that is given to user code -- the
handle exists so the implementation can hold on to the internal observer and use a
finalizer to detect when the user is done with the observer. The finalizer disallows
future use of the observer if it has no on-update handlers, so even if user code uses
a finalizer to resurrect the observer, it will still have not (use_is_allowed t)
.
include Core_kernel.Invariant.S1 with type a t := a t
val invariant : 'a Base__.Invariant_intf.inv ‑> 'a t Base__.Invariant_intf.inv
include Incremental_kernel__.Sexp_of.S1 with type a t := a t
include sig ... end
val sexp_of_t : ('a ‑> Sexplib.Sexp.t) ‑> 'a t ‑> Sexplib.Sexp.t
val observing : 'a t ‑> 'a Incremental_kernel__.Node.t
val use_is_allowed : _ t ‑> bool
val value_exn : 'a t ‑> 'a
val on_update_exn : 'a t ‑> 'a Incremental_kernel__.On_update_handler.t ‑> unit