Swap IO in Architecture?
It would be nice if one can swap the IO of an operation at the Architecture level. However, this possibly involves re-splitting the memory variables, so not clear if it is actually possible (unless we allow "incorrect" ProcessCollections for a while). Relates to #241 as one should be able to move variables in a second stage.