class Maybe extends FutureTask<T> {

    @Blocking
    public Optional<T> some() {
        try {
            return Optional.ofNullable(get());
            
        } catch (ExecutionException | InterruptedException ignored) {
            return Optional.empty();
        }
    }

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

}