source dump of claude code
1export function intersperse<A>(as: A[], separator: (index: number) => A): A[] {
2 return as.flatMap((a, i) => (i ? [separator(i), a] : [a]))
3}
4
5export function count<T>(arr: readonly T[], pred: (x: T) => unknown): number {
6 let n = 0
7 for (const x of arr) n += +!!pred(x)
8 return n
9}
10
11export function uniq<T>(xs: Iterable<T>): T[] {
12 return [...new Set(xs)]
13}