docs: public static <T> Supplier<T> memoizedNonEmpty(Supplier<T> actual) {
          return new Supplier<T>() {
              Supplier<T> delegate = this::initialize;
              boolean initialized;
  
              public T get() {
                  return delegate.get();
              }
  
              private synchronized T initialize() {
                  if (!initialized) {
                      T value = actual.get();
                      if (value == null) {
                          return null;
                      }
                      if (value instanceof Optional) {
                          if (!((Optional) value).isPresent()) {
                              return value;
                          }
                      }
                      delegate = () -> value;
                      initialized = true;
                  }
                  return delegate.get();
              }
          };
      }