Cursored Arrays. These are produced by Repa's stencil functions, and help the fusion framework to share index compuations between array elements.
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