class ScheduleImpl implements SealedSchedule<R, A, B>, Schedule.Update<R, S, A>, Schedule.Extract<A, S, B> {

  public Schedule<R, A, B> andThen(Schedule<R, A, B> next) {
    return andThenEither(next).map(Either::merge);
  }

  private  ScheduleImpl();

}