This change ensures that GraphObjects are evaluated when they are depended on. The biggest difference is that eager GraphObjects now force evaluations on lazy dependencies and ensure they are actually updated eagerly. Previously eager GraphObjects did not force evaluations, leading to issues where Observers did not update past their initial evaluation when watching a lazy GraphObject, especially since nothing was forcing the lazy GraphObject to update and get out of its invalid condition.
This change ensures that GraphObjects are evaluated when they are depended on. The biggest difference is that eager GraphObjects now force evaluations on lazy dependencies and ensure they are actually updated eagerly. Previously eager GraphObjects did not force evaluations, leading to issues where Observers did not update past their initial evaluation when watching a lazy GraphObject, especially since nothing was forcing the lazy GraphObject to update and get out of its invalid condition.