code: @Nonnull
      @CheckReturnValue
      public static <T, R> LifecycleTransformer<T> bind(@Nonnull Observable<R> lifecycle,
                                                        @Nonnull final Function<R, R> correspondingEvents) {
          checkNotNull(lifecycle, "lifecycle == null");
          checkNotNull(correspondingEvents, "correspondingEvents == null");
          return bind(takeUntilCorrespondingEvent(lifecycle.share(), correspondingEvents));
      }
docs: Binds the given source to a lifecycle.
  <p>
  This method determines (based on the lifecycle sequence itself) when the source
  should stop emitting items. It uses the provided correspondingEvents function to determine
  when to unsubscribe.
  <p>
  Note that this is an advanced usage of the library and should generally be used only if you
  really know what you're doing with a given lifecycle.
  
  @param lifecycle the lifecycle sequence
  @param correspondingEvents a function which tells the source when to unsubscribe
  @return a reusable {@link LifecycleTransformer} that unsubscribes the source during the Fragment lifecycle