hoogle-4.2.27: src/Recipe/Warning.hs
module Recipe.Warning(
resetWarnings, putWarning, recapWarnings
) where
import Control.Concurrent
import System.IO.Unsafe
{-# NOINLINE warnings #-}
warnings :: MVar [String]
warnings = unsafePerformIO $ newMVar []
putWarning :: String -> IO ()
putWarning x = do
putStrLn x
modifyMVar_ warnings $ return . (x:)
recapWarnings :: IO ()
recapWarnings = do
xs <- readMVar warnings
mapM_ putStrLn $ reverse xs
resetWarnings :: IO ()
resetWarnings = modifyMVar_ warnings $ const $ return []