code: public static <T> MonadicObservableValue<T> monadic(ObservableValue<T> o) {
          if(o instanceof MonadicObservableValue) {
              return (MonadicObservableValue<T>) o;
          } else {
              return new MonadicWrapper<>(o);
          }
      }
docs: Creates a thin wrapper around an observable value to make it monadic.
  @param o ObservableValue to wrap
  @return {@code o} if {@code o} is already monadic, or a thin monadic
  wrapper around {@code o} otherwise.