# Fx.compact

Compacts an Fx of Options, discarding `None` values and unwrapping `Some` values.

## Signatures

```ts
export declare const compact: <A, E, R>(self: Fx<Option.Option<A>, E, R>) => Fx<A, E, R>;
```

## Why

`compact` turns optional pushed values into ordinary pushed values without inventing a sentinel.
It emits once for each `Some`, never for `None`, and preserves the order of retained values.

## Ownership and lifetime

This is a stateless sink transformation. It acquires no resources and forwards source failures,
services, completion, and interruption unchanged.

## Examples

```ts
import { Option } from "effect"
import { Fx } from "@typed/fx"

const present = Fx.fromIterable([Option.some(1), Option.none(), Option.some(2)]).pipe(Fx.compact)
```
