pprArray (d:ds) vs =
  brackets $ commasep $ map (pprArray ds . slice) [0..d-1]
  where slice_size = product ds
        slice i = UVec.slice (i*slice_size) slice_size vs
pprArray (d:ds) vs =
  brackets $ commasep $ map (pprArray ds . slice) [0..d-1]
  where slice_size = product ds
        slice i = UVec.slice (i*slice_size) slice_size vs
pprArray (d:ds) vs =
  brackets $ commasep $ map (pprArray ds . slice) [0..d-1]
  where slice_size = product ds
        slice i = UVec.slice (i*slice_size) slice_size vs