(f: F)
| 523 | /** @internal */ |
| 524 | export const orElse = |
| 525 | <RA, Ret, F extends (_: RA) => Ret>(f: F) => |
| 526 | <I, R, A, Pr>(self: Matcher<I, R, RA, A, Pr, Ret>): [Pr] extends [never] ? (input: I) => Unify<ReturnType<F> | A> |
| 527 | : Unify<ReturnType<F> | A> => |
| 528 | { |
| 529 | const toResult = result(self) |
| 530 | |
| 531 | if (Result.isResult(toResult)) { |
| 532 | return toResult._tag === "Success" ? toResult.success as any : f(toResult.failure) as any |
| 533 | } |
| 534 | |
| 535 | // @ts-expect-error |
| 536 | return (input: I) => { |
| 537 | const a = toResult(input) |
| 538 | return Result.isSuccess(a) ? a.success : f(a.failure) |
| 539 | } |
| 540 | } |
| 541 | |
| 542 | /** @internal */ |
| 543 | export const orElseAbsurd = <I, R, RA, A, Pr, Ret>( |
no test coverage detected