# takeWhile

Take values from a RefArray while a predicate is true.

## Signatures

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

## Why

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

## Ownership and lifetime

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