/** * Repeats this effect while its value satisfies the specified effectful * predicate or until the first failure. * * @tsplus static effect/core/io/Effect.Aspects repeatWhileEffect * @tsplus pipeable effect/core/io/Effect repeatWhileEffect */ export function repeatWhileEffect( f: (a: A) => Effect ) { return (self: Effect): Effect => self.repeatUntilEffect((a) => f(a).negate) }