code: public final Mono<List<T>> collectList() {
  		if (this instanceof Callable) {
  			if (this instanceof Fuseable.ScalarCallable) {
  				@SuppressWarnings("unchecked")
  				Fuseable.ScalarCallable<T> scalarCallable = (Fuseable.ScalarCallable<T>) this;
  
  				T v;
  				try {
  					v = scalarCallable.call();
  				}
  				catch (Exception e) {
  					return Mono.error(e);
  				}
  				if (v == null) {
  					return Mono.onAssembly(new MonoSupplier<>(listSupplier()));
  				}
  				return Mono.just(v).map(u -> {
  					List<T> list = Flux.<T>listSupplier().get();
  					list.add(u);
  					return list;
  				});
  
  			}
  			@SuppressWarnings("unchecked")
  			Callable<T> thiz = (Callable<T>)this;
  			return Mono.onAssembly(new MonoCallable<>(thiz).map(u -> {
  				List<T> list = Flux.<T>listSupplier().get();
  				list.add(u);
  				return list;
  			}));
  		}
  		return Mono.onAssembly(new MonoCollectList<>(this, listSupplier()));
  	}
docs: Collect all elements emitted by this {@link Flux} into a {@link List} that is
  emitted by the resulting {@link Mono} when this sequence completes.
  
  <p>
  <img class="marble" src="doc-files/marbles/collectList.svg" alt="">
  
  @reactor.discard This operator discards the buffer upon cancellation or error triggered by a data signal.
  
  @return a {@link Mono} of a {@link List} of all values from this {@link Flux}