docs: public static <A> IO<A> externallyManaged(Supplier<CompletableFuture<A>> supplier) {
          return new IO<A>() {
              @Override
              public A unsafePerformIO() {
                  return checked(() -> unsafePerformAsyncIO().get()).get();
              }
  
              @Override
              public CompletableFuture<A> unsafePerformAsyncIO(Executor executor) {
                  return supplier.get();
              }
          };
      }