/** * Recovers from some or all of the error cases. * * @tsplus static effect/core/io/Effect.Aspects catchSome * @tsplus pipeable effect/core/io/Effect catchSome */ export function catchSome(f: (e: E) => Maybe>) { return (self: Effect): Effect => self.foldCauseEffect( (cause): Effect => cause .failureOrCause .fold((x) => f(x).getOrElse(Effect.failCause(cause)), Effect.failCause), Effect.succeed ) }