code: public static <T> CompletableFuture<T> narrow(final CompletableFuture<? extends T> f) {
          return (CompletableFuture<T>) f;
      }
docs: Narrow covariant type parameter
  
  @param f CompletableFuture with covariant type parameter
  @return Narrowed Future