class DefaultCompletableAsyncResult implements CompletableAsyncResult<T> {

  @Override
  public AsyncCompletion accept(BiConsumer<? super T, Throwable> consumer) {
    requireNonNull(consumer);
    return new DefaultCompletableAsyncCompletion(future.handle((t, ex) -> {
      consumer.accept(t, ex);
      return null;
    }));
  }

    DefaultCompletableAsyncResult();
    DefaultCompletableAsyncResult(CompletableFuture<T> future);

}