# RefIterable.flatMap

FlatMap (endomorphic).

## Signatures

```ts
export declare const flatMap: {
    <A>(f: (a: A, index: number) => Iterable<A>): <E, R>(ref: RefIterable<A, E, R>) => Effect.Effect<Iterable<A>, E, R>;
    <A, E, R>(ref: RefIterable<A, E, R>, f: (a: A, index: number) => Iterable<A>): Effect.Effect<Iterable<A>, E, R>;
};
```

## Why

FlatMap (endomorphic). The operation remains attached to the RefSubject's versioned state
boundary.

## Ownership and lifetime

Running flat map performs one serialized iterable transition and resolves with its committed
value. It acquires no resource; failures and services remain those of the source ref.
