Tue Apr 20 15:04:26 EDT 2010
Experience with using the cache abstraction (rv.ss)
It seems to work quite well, allowing this workflow:
1 focus on solving the problem using struct, pure functions without
worrying about storage. i.e. build a vocabulary.
2 identify nodes in the computation graph that would benefit from
3 write functions that relate those nodes.
4 lift the latter functions into the reactive value domain using
5 use `rv-force' at the toplevel to pull values from the network.
What I miss though after initial Haskell brainwash (how quickly the
world owes me something..), is a type system that tells me whether a
computation is pure or not. I.e. you can't see what's behind an #<rv>
without applying `rv-force'.
The idea of "lifting" pure computations into the effectful world is a
very powerful one. A type system that can understand the differences
between pure and lifted values gives some pretty direct feedback while