code: public static <R> ComposableFuture<R> flatten(ComposableFuture<ComposableFuture<R>> future) {
      return future.flatMap(Function.identity());
    }
docs: Creates a new future with one level of nesting flattened, this method is equivalent to flatMap(identity)
  
  @param future the future to flatten
  @param <R>    the future value type.
  @return a new future that will produce the result from invocation of 2 levels of futures.