pub(crate) fn fold<T, P, V, F>( punctuated: Punctuated<T, P>, fold: &mut V, f: F, ) -> Punctuated<T, P>where V: ?Sized, F: FnMut(&mut V, T) -> T,