title: CompletionStage: Why is allOf or anyOf defined in CompletableFuture
body: <p>I have a framework that uses the interface <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html" rel="nofollow">CompletionStage</a> and I'm curious why the helper methods <code>anyOf</code> or <code>allOf</code> found in <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html" rel="nofollow">CompletableFuture</a> are defined there.</p>
  
  <p>Seems like they should be operating on the interfaces rather than the implementation ?</p>
  
  <p>I'm quite dissatisfied with the CompletionStage interface thus far.
  Are there other Java libraries that are CompletionStage compliant but a different superset interface someone can recommend?</p>
  
  <p>Or perhaps some library written with additional helper methods for working with CompletionStage ?</p>