class IgniteFutureImpl implements IgniteFuture<V> {

    @Override public <T> IgniteFuture<T> chainAsync(final IgniteClosure<? super IgniteFuture<V>, T> doneCb,
        Executor exec) {
        A.notNull(doneCb, "doneCb");
        A.notNull(exec, "exec");

        return new IgniteFutureImpl<>(chainInternal(doneCb, exec));
    }

    public  IgniteFutureImpl(IgniteInternalFuture<V> fut);

}