In ghci, revertCAFs should be executed in the external interpreter when necessary
I believe this bug was discovered and reported earlier here, https://mail.haskell.org/pipermail/ghc-devs/2018-June/015842.html. I stumbled upon this while tracking down a problem with ghci.
To describe the problem, we call revertCAFs whenever we load modules in ghci so that they can be re-evaluated. This however, doesn't work as intended when use with
-fexternal-interpreter because the CAFs of loaded modules actually live in the external interpreter process instead while
revertCAFs only work for CAFs in the ghci process.
To fix this, we should call revertCAFs in the external interpreter when it's used.