Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
LwdSourcemap 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
Change the variable's content, invalidating all documents depending on it.
Observe 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.
create a new primitive document.
Releasing unused graphs
A root of computation, whose value(s) over time we're interested in.
observe x creates a root that contains document x.
Change the callback for the root. See observe for more details.
Force the computation of the value for this root. The value is cached, so this is idempotent, until the next invalidation.
is_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.
Forget about this root and release sub-values no longer reachable from any root.