code: public final Flux<T> expandDeep(Function<? super T, ? extends Publisher<? extends T>> expander,
  			int capacityHint) {
  		return Flux.onAssembly(new MonoExpand<>(this, expander, false, capacityHint));
  	}
docs: Recursively expand elements into a graph and emit all the resulting element,
  in a depth-first traversal order.
  <p>
  That is: emit the value from this {@link Mono}, expand it and emit the first value
  at this first level of recursion, and so on... When no more recursion is possible,
  backtrack to the previous level and re-apply the strategy.
  <p>
  For example, given the hierarchical structure
  <pre>
  A
  - AA
  - aa1
  - AB
  - ab1
  - a1
  </pre>
  
  Expands {@code Mono.just(A)} into
  <pre>
  A
  AA
  aa1
  AB
  ab1
  a1
  </pre>
  
  @param expander the {@link Function} applied at each level of recursion to expand
  values into a {@link Publisher}, producing a graph.
  @param capacityHint a capacity hint to prepare the inner queues to accommodate n
  elements per level of recursion.
  
  @return this Mono expanded depth-first to a {@link Flux}