public int compareAndStoreDependency(@NotNull final PyElement o1, @NotNull final PyElement o2) {
    var o1UUID = getObject(UUID_KEY, o1, () -> UUID.randomUUID());
    var o2UUID = getObject(UUID_KEY, o2, () -> UUID.randomUUID());

    int result = compare(o1, o2);
    if (result > 0) {
      //o1 depends on 02
      getObject(DEPENDENCIES_KEY, o1, () -> new HashSet<>()).add(o2UUID);
    }
    else if (result < 0) {
      // o2 depends on 01
      getObject(DEPENDENCIES_KEY, o2, () -> new HashSet<>()).add(o1UUID);
    }
    return result;
  }
public int compareAndStoreDependency(@NotNull final PyElement o1, @NotNull final PyElement o2)