Global variables via unsafePerformIO in Haskell
问题 The GHC API requires that some initialisation occurs before invocation. Specifically, parseStaticFlags can only be called once. I have functions that can call runGhc :: MaybeFilePath :: Ghc a -> IO a multiple times to run some GHC API methods. However, some of that initialisation should only occur the first time that function is called. I seem to remember from Yi source that it is possible to create a global variable something like ghcInitialised :: MVar (Bool,[String]) ghcInitialised =