export function collectByKey( f: (value: A) => K, list: A[], ): Record { const record = {} as Record for (const item of list) { const key = f(item) if (!record[key]) { record[key] = [] } record[key].push(item) } return record }