import type { Decision } from "@effect/core/io/Schedule/Decision" import type { Interval } from "@effect/core/io/Schedule/Interval" /** * Returns a new schedule that reconsiders every decision made by this * schedule, possibly modifying the next interval and the output type in the * process. * * @tsplus static effect/core/io/Schedule.Aspects reconsider * @tsplus pipeable effect/core/io/Schedule reconsider */ export function reconsider( f: ( state: State, out: Out, decision: Decision ) => Either ) { return (self: Schedule): Schedule => self.reconsiderEffect((state, out, decision) => Effect.sync(f(state, out, decision))) }