OK, two prospects: first, move the lazy attribute to the root Cell class so input Cells can be lazy. Hmmm, does this mean we should make it a slot attribute? Anyway, now here is the real interesting change I am looking at:

The domain is Cells with lazy attributes of t, :always, or :once-asked.

Currently, such lazy Cells, once they do get recalculated on being queried, propagate immediately to callers aka dependents. And have their observers invoked.

The proposed change is not to propagate to callers, but to still invoke observers. I think observers cannot be very observant if they are not notified of changes as they happen.*

Comments? Question?

kt

* I was amused to see a long comment explaining why I was moving caller/dependent notification in front of observer invocation, when in fact the caller notification then was being placed on a queue and then the observers were invoked immediately. Of course observers, where they perturb the model, are supposed to enqueue themselves cooperatively, but still. :)

kt