Dynamic’s are essential to support Hot Reload.
Dynamic is simply defined as:
newtype Dynamic m a = Dynamic ( -- Initial value a , -- Set a new value (a -> m ()) -> m () )
It is a pair of values: the initial value, and a function that knows how to update that value over time using the user-provided update function (
a -> m ()). Dynamic’s are an
Applicative, so they compose using
liftA* family of functions.
The use of a time-varying
Dynamic is what enables Hot Reload. See here for an example of making a model time-varying. Checkout
unionmount to produce a
Dynamic of a model that updates based on the filesystem tree.