code: @CheckReturnValue
      @SchedulerSupport(SchedulerSupport.NONE)
      public final <T> Single<T> toSingle(final Callable<? extends T> completionValueSupplier) {
          ObjectHelper.requireNonNull(completionValueSupplier, "completionValueSupplier is null");
          return RxJavaPlugins.onAssembly(new CompletableToSingle<T>(this, completionValueSupplier, null));
      }
docs: Converts this Completable into a Single which when this Completable completes normally,
  calls the given supplier and emits its returned value through onSuccess.
  <p>
  <img width="640" height="583" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Completable.toSingle.png" alt="">
  <dl>
  <dt><b>Scheduler:</b></dt>
  <dd>{@code toSingle} does not operate by default on a particular {@link Scheduler}.</dd>
  </dl>
  @param <T> the value type
  @param completionValueSupplier the value supplier called when this Completable completes normally
  @return the new Single instance
  @throws NullPointerException if completionValueSupplier is null