Module type ReactiveData.S
Signature describing a reactive data structure ('a t).
Most functions in S are not safe to call during a React update step.
type 'a tReactive version of the data container
type 'a dataRaw (non-reactive) version of the data container
type 'a patchPatch format
type 'a msg = Message format
type 'a handleHandle that permits applying incremental updates
val empty : 'a tEmpty data structure
Build a container from initial contents. The handle can be used for performing reactive updates.
from_event d e is a container whose initial value is d, and which gets updated for every occurrence of e
Convert a React signal into a ReactiveData container.
Whenever the signal changes from value v to value v', we detect the differences between v and v', and perform downstream computation (e.g., for map) only on the new and modified elements.
set h d sets the contents of the container corresponding to h, disregarding previous contents
map f c applies f on all elements of c, producing a new reactive container c'. Modifying the contents of c leads to modifications of c'. f is applied only on the new or modified elements of c.
fold f c v accumulates the updates on c with f starting from v.
The result is a signal of value f m_n (f ... (f m_1 v)), where m_1 ... m_n are the messages that have been applied since the beginning of fold. m_1 is a pseudo-message Set l, accounting for the contents l of c at the time when accumulation starts.