code: public final <V> Mono<V> then(Mono<V> other) {
  		if (this instanceof MonoIgnoreThen) {
              MonoIgnoreThen<T> a = (MonoIgnoreThen<T>) this;
              return a.shift(other);
  		}
  		return onAssembly(new MonoIgnoreThen<>(new Publisher[] { this }, other));
  	}
docs: Let this {@link Mono} complete then play another Mono.
  <p>
  In other words ignore element from this {@link Mono} and transform its completion signal into the
  emission and completion signal of a provided {@code Mono<V>}. Error signal is
  replayed in the resulting {@code Mono<V>}.
  
  <p>
  <img class="marble" src="doc-files/marbles/thenWithMonoForMono.svg" alt="">
  
  @reactor.discard This operator discards the element from the source.
  
  @param other a {@link Mono} to emit from after termination
  @param <V> the element type of the supplied Mono
  
  @return a new {@link Mono} that emits from the supplied {@link Mono}