class DeferredResult {

    public <U> DeferredResult<Void> thenAcceptBoth(DeferredResult<? extends U> other,
            BiConsumer<? super T, ? super U> action) {
        return wrap(this.completableFuture.thenAcceptBoth(other.toCompletionStage(), action));
    }

    public  DeferredResult();
    public  DeferredResult(CompletableFuture<T> completableFuture);

}