Have different kinds of array dimension (distribution format).
Each kind of dimension has a different set of formulae for segment layout, index computation, etc.
OO interpretation: virtual functions on a class hierarchy.
Implement as the Range hierarchy.
DAD for rank-r array will contain r Range objects, one per dimension.