pub fn map_outer<T, const N: usize, Map>( array: &[T; N], map: Map ) -> [[Map::Output; N]; N]where Map: FnMut<(T, T)> + Destruct, T: Copy,