pub fn zip_outer<T, const N: usize, Z, const M: usize>( array: &[T; N], other: &[Z; M] ) -> [[(T, Z); M]; N]where T: Copy, Z: Copy,