Lwdval return : 'a -> 'a tThe content document with the given value inside
map f d is the document that has value f x whenever d has value x
map2 f d1 d2 is the document that has value f x y whenever d1 has value x1 and d2 has value x2
Monadic operator join d is the document pointed to by document d. This is powerful but potentially costly in case of recomputation.
Applicative: app df dx is the document that has value f x whenever df has value f and dx has value x
val is_pure : 'a t -> 'a optionval var : 'a -> 'a varCreate a new variable with the given initial value
val set : 'a var -> 'a -> unitChange the variable's content, invalidating all documents depending on it.
val peek : 'a var -> 'aObserve the current value of the variable, without any dependency tracking.
A primitive document. It can correspond, for example, to a primitive UI element.
A primitive is a resource with acquire and release functions to manage its lifecycle.
val prim : acquire:(unit -> 'a) -> release:('a -> unit) -> 'a primcreate a new primitive document.
val invalidate : 'a prim -> unittype release_failure = exn * Printexc.raw_backtraceReleasing unused graphs
exception Release_failure of exn option * release_failure listval make_release_queue : unit -> release_queueval flush_release_queue : release_queue -> release_failure listobserve x creates a root that contains document x.
val set_on_invalidate : 'a root -> ('a -> unit) -> unitChange the callback for the root. See observe for more details.
val sample : release_queue -> 'a root -> 'aForce the computation of the value for this root. The value is cached, so this is idempotent, until the next invalidation.
val is_damaged : 'a root -> boolis_damaged root is true if the root doesn't have a valid value in cache. This can be the case if the value was never computed, or if it was computed and then invalidated.
val release : release_queue -> 'a root -> unitForget about this root and release sub-values no longer reachable from any root.
val quick_sample : 'a root -> 'aval quick_release : 'a root -> unitmodule Infix : sig ... endval dump_trace : 'a t -> unit