This is only one way.  `[1, 1] * [[1], [1]]` (shaped like _|-> .)  is a counterexample