# Sink.compact

Forwards `Some` values and discards `None` values.

## Signatures

```ts
export declare function compact<A, E, R>(sink: Sink<A, E, R>): Sink<Option.Option<A>, E, R>;
```

## Why

`compact` consumes optional producer output with the same zero-or-one cardinality as `filterMap`.

## Ownership and lifetime

Option inspection is synchronous and resource-free. Present values retain arrival order; failure
causes pass through unchanged.

## Examples

```ts
import { Effect, Option } from "effect"
import * as Sink from "@typed/fx/Sink"
const sink = Sink.compact(Sink.make(Effect.logError, (n: number) => Effect.log(n)))
sink.onSuccess(Option.some(1))
```
