docs: @SuppressWarnings("unchecked")
    static Supplier<CompletableFuture<ExecutionResult>> makeAsync(Supplier<CompletableFuture<ExecutionResult>> supplier,
        Scheduler scheduler, FailsafeFuture<Object> future) {
      return () -> {
        CompletableFuture<ExecutionResult> promise = new CompletableFuture<>();
        Callable<Object> callable = () -> supplier.get().handle((result, error) -> {
          // Propagate result
          if (result != null)
            promise.complete(result);
          else
            promise.completeExceptionally(error);
          return result;
        });
  
        try {
          future.inject((Future) scheduler.schedule(callable, 0, TimeUnit.NANOSECONDS));
        } catch (Exception e) {
          promise.completeExceptionally(e);
        }
        return promise;
      };
    }