fn diff_named_section<T: Clone + PartialEq>( old: &[T], new: &[T], name_fn: fn(&T) -> &str, added: &mut Vec<T>, removed: &mut Vec<T>, changed: &mut Vec<T>, )