private static @NotNull String reportProblem(@Nullable Object o1, @Nullable Object o2) {
    return appendDetail("Non-idempotent computation: it returns different results when invoked multiple times or on different threads:",
                        objAndClass(o1) + " != " + objAndClass(o2));
  }
private static @NotNull String reportProblem(@Nullable Object o1, @Nullable Object o2)