pub fn group_and_sum<T: Ord + Copy, U: Add<Output = U> + Copy>( groups: Vec<T>, values: Vec<U>, ) -> (Vec<T>, Vec<U>)