module Control.Concurrent.STM.TSem.Lifted ( module All , newTSemIO , waitTSemIO , signalTSemIO , signalTSemNIO ) where import Numeric.Natural (Natural) import Control.Concurrent.STM.TSem as All import Internal ---------------------------------------------------------------------- newTSemIO :: MonadIO m => Integer -> m TSem newTSemIO = atomically . newTSem waitTSemIO :: MonadIO m => TSem -> m () waitTSemIO = atomically . waitTSem signalTSemIO :: MonadIO m => TSem -> m () signalTSemIO = atomically . signalTSem signalTSemNIO :: MonadIO m => Natural -> TSem -> m () signalTSemNIO = atomically .: signalTSemN