retryOrElseEither
inline suspend fun <E : Throwable, Input, Output, A> Schedule<E, Output>.retryOrElseEither(noinline action: suspend () -> Input, noinline orElse: suspend (E, Output) -> A): Either<A, Input>
suspend fun <E : Throwable, Input, Output, A> Schedule<E, Output>.retryOrElseEither(exceptionClass: KClass<E>, action: suspend () -> Input, orElse: suspend (E, Output) -> A): Either<A, Input>
Retries action using any E that occurred as the input to the Schedule. If the Schedule is exhausted, it will invoke orElse with the last exception and the output of the Schedule to produce a fallback value of A. Returns Either with the fallback value if the Schedule is exhausted, or the successful result of action.