+ -- Note: Have to thread the module's SRT through all the procedures
+ -- because we greedily build it as we go.
+ ; us <- mkSplitUniqSupply 'S'
+ ; let topSRT = initUs_ us emptySRT
+ ; (topSRT, prog) <- foldM (protoCmmCPSZ hsc_env) (topSRT, []) prog