docs: public static <T> Function<Void, T> wrap(final Function<T, T> function,
          final Function<Function<T, T>, T> wrapper) {
          return new Function<Void, T>() {
              public T apply(final Void arg) {
                  return wrapper.apply(function);
              }
          };
      }