IMHO, for what you describe, i.e. I'd like to view an atom's changes in
state as a lazy sequence. there is no need to change the IAtom or
add-watch function.
Watchers are called for their side-effects, so if you want to consume their
output as a lazy sequence, you have to do that transformation
I've been reading about transducers with interest.
The official docs at http://clojure.org/transducers say *Because
transducers are decoupled from input or output sources, they can be used in
many different processes - collections, streams, channels, observables,
etc.*
At this stage,