import Dict from "./Dict"; export default (loose: Iterable, key: (val: T) => K) => { const groups = new Dict(); for (const val of loose) { groups.computeIfAbsent(key(val), () => []).push(val); } return groups; };