class DeferredResult {

    public DeferredResult<T> exceptionally(Function<Throwable, ? extends T> fn) {
        return wrap(this.completableFuture.exceptionally(fn));
    }

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

}