Давай лучше что-то более полезное обсудим. Например, есть такая проблема: интерактивное изменение атома, от которого текущий косвенно уже зависит, в процессе вычисления текущего. Так как от изменённого растекаются уведомления об устаревании, то это приходит в текущий и игнорируется. Потом текущий помечается актуальным и ветка до изменённого остаётся висеть в необновлённом состоянии.
Какие тут есть варианты:
1. Детектировать ситуацию и кидать ошибку. Но запишется ошибка, а ветка останется необновлённой. Зато программист увидит, что где-то накосячил. Сейчас так в $mol_atom2.
2. Запретить любые проталкивания в процессе затягивания. Тогда программист будет вынужден шедулить любые пуши на следующий микротаск. Уже нельзя будет делать такие выкрутасы: сюда записать, там дёрнуть и получить значение с учётом внесённого изменения.
3. Как-то сделать так, чтобы даже после завершения текущего атома, он и ветка от него до корня оставалась в неактуальном состоянии, если пуш вызвал её устаревание в процессе вычисления. Тогда она автоматически обновится в следующем фрейме.
4. Откладывать все нотификации о пушах до следующего микротаска. В принципе эквивалентно (2), но автоматизированное. И при прямом обращении в изменённому атому будет уже актуальное состояние. То есть система временно впадает в неконсистентное состояние.