code: @SuppressWarnings("unchecked")
    public <G> OrFuture<G, BAD> future(CheckedFunction0<? extends Or<? extends G, ? extends BAD>> task) {
      OrFutureImpl<G, BAD> future = new OrFutureImpl<>(this);
      executor.execute(() -> {
        try {
          future.complete((Or<G, BAD>) task.apply());
        } catch (Throwable t) {
          future.complete(Bad.of(converter.apply(t)));
        }
      });
      return future;
    }
docs: Creates an OrFuture that will execute the given task using this context's executor.
  
  @param task asynchronous computation to execute
  @param <G> the good type
  @return a new future that completes with the result of the supplied task, or if the execution of the
  task throws an exception, that exception will be handled with this factory's exception converter.