Industrial strength, full-featured build system
Library jenga.tenacious
type 'a t
val create : 'a -> 'a t
val watch : 'a t -> 'a t

a tenacious computation whose value tracks the variable value

val set : 'a t -> 'a -> unit

Set new value for the variable. Any hearts derived from watch are broken immediately.

val get : 'a t -> 'a

Get the current value of the variable without watching it. Should be avoided in Tenacious computations. Use watch instead.

val replace : 'a t -> f:( 'a -> 'a ) -> unit