default @NotNull BatchExecutionResult compose(@NotNull BatchExecutionResult next) {
      if (next == Result.NOTHING || next.equals(this) || this instanceof Error || this == Result.CONFLICTS) return this;
      if (this == Result.NOTHING || next instanceof Error || next == Result.CONFLICTS) return next;
      if (this == Result.ABORT || next == Result.ABORT) return Result.ABORT;
      return Result.SUCCESS;
    }
default @NotNull BatchExecutionResult compose(@NotNull BatchExecutionResult next)