void (@NotNull Node<T> node, Node<T> child) { IntervalNode<T> myNode = (IntervalNode<T>)node; pushDelta(myNode); pushDelta((IntervalNode<T>)child); super.replaceNode(node, child); if (child != null && myNode.isValid()) { ((IntervalNode<T>)child).changeDelta(myNode.delta); //todo correct max up to root?? } }