Import
import { catch } from "@typed/guard";This public exposure is a re-export. Its import path is supported; declaration documentation is shared with the other public exposures below.
Signatures
export { catchAll as catch };export declare const catchAll: {
<E, O2, E2, R2>(f: (e: E) => Effect.Effect<O2, E2, R2>): <I, O, R>(guard: GuardInput<I, O, E, R>) => Guard<I, O | O2, E2, R | R2>;
<I, O, E, R, O2, E2, R2>(guard: GuardInput<I, O, E, R>, f: (e: E) => Effect.Effect<O2, E2, R2>): Guard<I, O | O2, E2, R | R2>;
};Why
Typed recovery leaves defects and interruption untouched and does not confuse successful None with failure. The exported catch name is an alias of this declaration.
Ownership and lifetime
Construction acquires no resources; recovery starts only for typed failure during the source invocation.
Examples
import { catchAll } from "@typed/guard"
import type { Guard } from "@typed/guard"
import { Effect } from "effect"
const source: Guard<string, string, string> = (input) => input ? Effect.succeedSome(input) : Effect.fail("empty")
const recovered = catchAll(source, (error) => Effect.succeed(error.length))Other public imports
These import paths expose the same declaration. Each page retains its own public name and signature.