# Fx.exit

Materializes every success and the terminal failure as infallible `Exit` values.

## Signatures

```ts
export declare const exit: <A, E, R>(fx: Fx<A, E, R>) => Fx<Exit.Exit<A, E>, never, R>;
```

## Why

Turning both channels into data lets downstream Fx composition inspect
complete Effect causes without terminating the pipeline.

## Ownership and lifetime

Each source value becomes `Exit.succeed` in arrival order. A source failure,
including a defect or interrupt, becomes one `Exit.failCause`, after which
the returned Fx completes with error type `never`. It acquires no resource
beyond the single source subscription.

## Examples

```ts
import { exit } from "@typed/fx/Fx"
import { fail } from "@typed/fx/Fx"

const outcomes = exit(fail("offline"))
```
