# RefIterable.groupBy

Group the values of a RefIterable by a key.

## Signatures

```ts
export declare const groupBy: {
    <A>(f: (a: A) => string): <E, R>(ref: RefIterable<A, E, R>) => RefSubject.Computed<Record<string, Array<A>>, E, R>;
    <A, E, R>(ref: RefIterable<A, E, R>, f: (a: A) => string): RefSubject.Computed<Record<string, Array<A>>, E, R>;
};
```

## Why

Projects iterable state with group by for both current reads and future pushes, avoiding a
second mutable cache of the derived value.

## Ownership and lifetime

The group by view retains no independent state. An Effect read samples the source once; Fx
observation follows later pushes and its observing Scope owns subscription cleanup.
