/** * Recovers from specified error. * * @tsplus static effect/core/io/Effect.Aspects catch * @tsplus pipeable effect/core/io/Effect catch */ export function _catch( tag: N, k: K, f: (e: Extract) => Effect ) { return (self: Effect): Effect | E1, A | A1> => self.catchAll((e) => { if (typeof e === "object" && e != null && tag in e && e[tag] === k) { return f(e as any) } return Effect.fail(e as any) }) } export { _catch as catch }