paragon-0.1.19: src/Language/Java/Paragon/Monad/Uniq.hs
module Language.Java.Paragon.Monad.Uniq
( Uniq, initUniq, getUniq ) where
import Data.IORef
newtype Uniq = Uniq (IORef Int)
initUniq :: IO Uniq
initUniq = newIORef 0 >>= return . Uniq
getUniq :: Uniq -> IO Int
getUniq (Uniq u) = do i <- readIORef u
writeIORef u (i+1)
return i