Sat Apr 17 13:10:15 EDT 2010

Separating pure functions from reactive computations

From actual usage it is really ok to just have `rv-app' or `rv-apply'
and build abstractions on top of those.  

Having to abstract the pure part into a single value also helps with
separating the side effects (reactive value nodes) from the pure
computations that connect them.  For one, this allows the pure parts
to be tested and reused independently.

Conclusion: at this point it seems useful to use the reactive value
abstraction to explicitly structure caching and laziness in a
functional program.  The obligation to distinguish strict and reactive
computations isn't necessarily bad, however, it is best to separate
functionality from evaluation strategy and write reactive modules in
terms of strict, pure functional modules that contain all the real