@Experimental
  default @NotNull Query<Result> wrap(@NotNull QueryWrapper<Result> wrapper) {
    Query<Result> query = this;
    return new AbstractQuery<Result>() {
      @Override
      protected boolean processResults(@NotNull Processor<? super Result> consumer) {
        return wrapper.wrapExecution(c -> AbstractQuery.delegateProcessResults(query, c), consumer);
      }
    };
  }
@Experimental
  default @NotNull Query<Result> wrap(@NotNull QueryWrapper<Result> wrapper)