const fileName_1 = "(@effect/core) _src/io/Schedule/operations/unfold.ts";
import * as tsplus_module_1 from "@effect/core/io/Schedule/Interval";
import * as tsplus_module_2 from "@effect/core/io/Schedule/Decision";
import * as tsplus_module_3 from "@tsplus/stdlib/data/Tuple/make";
import * as tsplus_module_4 from "@effect/core/io/Effect/operations/succeed";
import { makeWithState } from "@effect/core/io/Schedule/operations/_internal/makeWithState";
/**
 * Unfolds a schedule that repeats one time from the specified state and
 * iterator.
 *
 * @tsplus static ets/Schedule/Ops unfold
 */

export function unfold(initial, f) {
  return makeWithState(initial, (now, _, state) => tsplus_module_4.succeed(() => tsplus_module_3.make(f(state), state, tsplus_module_2._continue(tsplus_module_1.after(now))), fileName_1 + ":17:38"));
}
//# sourceMappingURL=unfold.mjs.map