@Override
  public CompletionStage<WriteResult> delete(Criterion<T> criteria) {
    return Publishers.toFuture(reactive.delete(criteria));
  }
Writable which uses {@link CompletionStage} as return type
criteria/common/src/org/immutables/criteria/repository/async/AsyncWritable.java