code: public final synchronized boolean evalSuccess(Operation<?> operation, Hint... hints) {
          final boolean dummyRoot = stack.isEmpty();
          if (dummyRoot) {
              // add a root frame to preserve our cache "around" the supports/eval lifecycle, bypassing #push():
              stack.push(Frame.ROOT);
          }
          try {
              if (supports(operation, hints)) {
                  eval(operation, hints);
                  return operation.isSuccessful();
              }
          } finally {
              if (dummyRoot) {
                  pop(Frame.ROOT);
              }
          }
          return false;
      }
docs: Convenience method to perform an operation, discarding its result, and report whether it succeeded.
  
  @param operation
  @param hints
  @return whether {@code operation} was supported and successful
  @throws NullPointerException on {@code null} input
  @throws OperationException potentially, via {@link Operation#getResult()}