import * as tsplus_module_1 from "@effect/core/io/Effect/operations/succeed";
import * as tsplus_module_2 from "@effect/core/io/Effect/operations/retryUntilEffect";
/**
 * Retries this effect until its error satisfies the specified predicate.
 *
 * @tsplus fluent ets/Effect retryUntil
 */

export function retryUntil_(self, f, __tsplusTrace) {
  return tsplus_module_2.retryUntilEffect_(self, e => tsplus_module_1.succeed(() => f(e), __tsplusTrace), __tsplusTrace);
}
/**
 * Retries this effect until its error satisfies the specified predicate.
 *
 * @ets_data_first retryUntil_
 */

export const retryUntil = (f, __tsplusTrace) => self => retryUntil_(self, f, __tsplusTrace);
//# sourceMappingURL=retryUntil.mjs.map