class Maybe extends FutureTask<T> {

    public static <T> Maybe<T> value(T value) {
        var maybe =  new Maybe(CALLABLE);
        maybe.set(value);
        
        return maybe;
    }

    public  Maybe(Callable<T> callable);
    public  Maybe(Runnable runnable, T result);

}