Partitioned arrays. The last partition takes priority
These are produced by Repa's support functions and allow arrays to be defined using a different element function for each partition.
The basic idea is described in ``Efficient Parallel Stencil Convolution'', Ben Lippmeier and Gabriele Keller, Haskell 2011 -- though the underlying array representation has changed since this paper was published.
Arrays with a representation tag, shape, and element type.
Use one of the type tags like
U and so on for
DIM2 ... for