# Sink.exit

Materializes both sink channels as successful Effect `Exit` values.

## Signatures

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

## Why

A single infallible consumer can record or inspect success and the complete failure Cause as data.

## Ownership and lifetime

Every input produces exactly one downstream success: `Exit.succeed` for values or
`Exit.failCause` for failures. Order is preserved and the adapter acquires no resources.

## Examples

```ts
import { Effect } from "effect"
import * as Sink from "@typed/fx/Sink"
const exits = Sink.exit(Sink.make(Effect.logError, Effect.log))
```
