export const refineErrorOrDie =
<A, E, E1>(f: (e: E) => Option.Option<E1>) =>
(self: Effect.Effect<A, E>): Effect.Effect<A, E1> =>
self.pipe(
Effect.catchAll((e) =>
Option.match(f(e), {
onNone: () => Effect.die(e),
onSome: Effect.fail
})
)
)
export const refineErrorOrDie =
<A, E, E1>(f: (e: E) => Option.Option<E1>) =>
(self: Effect.Effect<A, E>): Effect.Effect<A, E1> =>
self.pipe(
Effect.catchAll((e) =>
Option.match(f(e), {
onNone: () => Effect.die(e),
onSome: Effect.fail
})
)
)