th-lock-0.0.4: test/Tests/Language/Haskell/TH/Lock/State.hs
module Tests.Language.Haskell.TH.Lock.State where import Data.IORef import Language.Haskell.TH import Language.Haskell.TH.Syntax import System.IO.Unsafe state :: IORef String state = unsafePerformIO (newIORef "") set :: String -> Q [Dec] set s = runIO (atomicWriteIORef state s) >> pure [] get :: Q Exp get = lift =<< runIO (readIORef state)