@Override
  public int compareTo(@NotNull TreeChangeImpl o) {
    List<ASTNode> thisParents = ContainerUtil.reverse(getSuperParents());
    List<ASTNode> thatParents = ContainerUtil.reverse(o.getSuperParents());
    for (int i = 1; i <= thisParents.size() && i <= thatParents.size(); i++) {
      ASTNode thisParent = i < thisParents.size() ? thisParents.get(i) : myParent;
      ASTNode thatParent = i < thatParents.size() ? thatParents.get(i) : o.myParent;
      int result = compareNodePositions(thisParent, thatParent);
      if (result != 0) return result;
    }
    return 0;
  }
@Override
  public int compareTo(@NotNull TreeChangeImpl o)