pub fn cartesian_product<N1, N2, E1, E2, Ix>(
graph1: &Graph<N1, E1, Ix>,
graph2: &Graph<N2, E2, Ix>,
) -> Graph<(N1, N2), (), Ix>where
N1: Node + Clone + Debug,
N2: Node + Clone + Debug,
E1: EdgeWeight,
E2: EdgeWeight,
Ix: IndexType,