Ahh.. another working example. Nice.
Peter, yes I need to do this for long lists. I already created a working patch utilizing the substitution method which slices long lists and then rejoins them. Maybe not ideal, but it works and I don't know how else to approach it.
I'm not sure how I would implement colls to derive the same output. There are many, many permutations for the lists I'm processing. It's not possible to store them all.
Without going into too much detail, I'm treating each list as a vertex in a higher dimensional lattice and I want to calculate the various lower dimensional structures of that space. For example, a 6-bit list encodes a single 0d vertex of a 6-cube (just as 3-bit lists encode the corners of a cube), 1d edges encode a single bit change between two lists, 2d faces (4 lists) encode 2-bits of difference, 3d cells (eight lists) encode 3-bits of difference, and so on.
So I need to freely map and scale between short and long lists of different lengths on the fly. I'm using coll to store the output, but I don't see how I would use coll to generate it...