expr must be a full array, with all the pieces of expr at a particular level having the same length. (The elements of expr can then be thought of as filling up a hyper-rectangular region.)
Each successive level in expr sampled by Dimensions must have the same head.
For SparseArray objects, Dimensions yields the dimensions of the corresponding ordinary lists.