It occurs to me that you might be able to have your cake and eat it (or view it) as well. If you leave the original module alone and simply redirect it's output, you can then manipulate the result in a way to simulate actual operation. You might have to tweak the output to increase the detail a smidge, but that doesn't strike me as any sort of integrity violation.
Any way you look at it, there is an enormous difference between production and process, hard to write clean code to do both. Self referent code is usually not do-able in as clean a model as you seem to want.
hsm