pub fn duplicates<T: Copy, I: Iterator<Item = T>, K: Hash + Ord + Eq>( iter: I, key: fn(T) -> K, ) -> impl Iterator<Item = (K, Vec<T>)>