/// <summary> /// Keeps repeating the computation until it fails /// </summary> /// <param name="schedule">Scheduler strategy for repeating</param> /// <param name="ma">Computation to repeat</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Eff <A> repeat <A>(Schedule schedule, Eff <A> ma) => ScheduleEff <A> .Repeat(ma, schedule);
/// <summary> /// Keeps repeating the computation until it fails /// </summary> /// <param name="schedule">Scheduler strategy for repeating</param> /// <param name="ma">Computation to repeat</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Eff <RT, A> repeat <RT, A>(Schedule schedule, Eff <RT, A> ma) where RT : struct => ScheduleEff <RT, A> .Repeat(ma, schedule);
/// <summary> /// Keeps repeating the computation until it fails /// </summary> /// <param name="ma">Computation to repeat</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Eff <A> repeat <A>(Eff <A> ma) => ScheduleEff <A> .Repeat(ma, Schedule.Forever);
/// <summary> /// Keeps repeating the computation until it fails /// </summary> /// <param name="ma">Computation to repeat</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Eff <RT, A> repeat <RT, A>(Eff <RT, A> ma) where RT : struct => ScheduleEff <RT, A> .Repeat(ma, Schedule.Forever);
/// <summary> /// Keeps repeating the computation until it fails /// </summary> /// <param name="schedule">Scheduler strategy for repeating</param> /// <param name="ma">Computation to repeat</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Eff<A> Repeat<A>(this Eff<A> ma, Schedule schedule) => ScheduleEff<A>.Repeat(ma, schedule);
/// <summary> /// Keeps repeating the computation until it fails /// </summary> /// <param name="schedule">Scheduler strategy for repeating</param> /// <param name="ma">Computation to repeat</param> /// <typeparam name="RT">Runtime</typeparam> /// <typeparam name="A">Computation bound value type</typeparam> /// <returns>The result of the last invocation of ma</returns> public static Eff<RT, A> Repeat<RT, A>(this Eff<RT, A> ma, Schedule schedule) where RT : struct => ScheduleEff<RT, A>.Repeat(ma, schedule);