Arrays are like static typing for lists

An array of rank greater than one can be viewed as a list of arrays, all of which have the same shape. Array shape can be considered a form of typing.

Array l:sh  ←→  ( Array sh, Array sh, ... Array sh )  -- Length l

In some array languages (such as Sharp APL and J), the elements of an array must all have the same type: numeric, literal, or boxed (a box can contain anything). Even implementations of languages without this requirement implicitly store arrays this way.

Array [l] t  ←→  ( t, t, ... t )                      -- Length l

This has real consequences: even an array which has no major cells knows what their shape should be!