# RefChunk.takeWhile

Take values from a RefChunk while a predicate is true.

## Signatures

```ts
export declare const takeWhile: {
    <A>(predicate: (a: A) => boolean): <E, R>(ref: RefChunk<A, E, R>) => Effect.Effect<Chunk.Chunk<A>, E, R>;
    <A, E, R>(ref: RefChunk<A, E, R>, predicate: (a: A) => boolean): Effect.Effect<Chunk.Chunk<A>, E, R>;
};
```

## Why

Applies take while to the committed chunk value and publishes only the result, preserving its
element order and equality rules.

## Ownership and lifetime

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