code: @CheckReturnValue
      @SchedulerSupport(SchedulerSupport.CUSTOM)
      public final Maybe<T> observeOn(final Scheduler scheduler) {
          ObjectHelper.requireNonNull(scheduler, "scheduler is null");
          return RxJavaPlugins.onAssembly(new MaybeObserveOn<T>(this, scheduler));
      }
docs: Wraps a Maybe to emit its item (or notify of its error) on a specified {@link Scheduler},
  asynchronously.
  <p>
  <img width="640" height="182" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Maybe.observeOn.png" alt="">
  <dl>
  <dt><b>Scheduler:</b></dt>
  <dd>you specify which {@link Scheduler} this operator will use.</dd>
  </dl>
  
  @param scheduler
  the {@link Scheduler} to notify subscribers on
  @return the new Maybe instance that its subscribers are notified on the specified
  {@link Scheduler}
  @see <a href="http://reactivex.io/documentation/operators/observeon.html">ReactiveX operators documentation: ObserveOn</a>
  @see <a href="http://www.grahamlea.com/2014/07/rxjava-threading-examples/">RxJava Threading Examples</a>
  @see #subscribeOn