@Override
      public boolean mayCacheNow() {
        CalculationStack stack = ourStack.get();
        boolean result = stamp == stack.reentrancyCount;
        if (!result && ourAssertOnMissedCache.get() && !stack.isCurrentNonCachingStillTolerated()) {
          throw new CachingPreventedException(stack.preventions);
        }
        return result;
      }
@Override
      public boolean mayCacheNow()