One reliable way to do this would be to dynamically load the code to be tested using the GHC API, and call this between each evaluation:
foreign import ccall "revertCAFs" revertCAFs :: IO ()
(note revertCAFs only works on CAFs in dynamically-loaded object code, not interpreted or statically linked CAFs).