Quite interesting. How does one resolve this?
Naive me would have d observe a and recalculate its value by recomputing b and c then.
Other naive but complexity indulging me would store a dependency graph and use this graph to determine when one should wait for a value to update.
Surely there must be an easier way?