Another stab. The problem I'm trying to solve is: - to be able to reuse intermediate buffers easily, e.g. declare them in C inside a limited scope, and - to do buffer dimension reduction Is there a simpler way to look at this problem? Is this just deforestation / loop fusion? Or are there other things at play? Needs some new insight. What is the core problem? To reuse buffers such that they are cache-hot.