/**
  * flatten nested SimpleReactStreams
  *
  * @param stream Stream to flatten
  * @return flattened Stream
  */
 static <U, R> SimpleReactStream<R> join(SimpleReactStream<SimpleReactStream<U>> stream) {
   Queue queue = stream.getQueueFactory().build();
   stream.then(it -> it.sync().then(queue::offer)).allOf(it -> queue.close());
   return stream.fromStream(queue.stream(stream.getSubscription()));
 }