module Control.Concurrent.STM.TMVar.Lifted
( module All
, newTMVarIO
, newEmptyTMVarIO
, takeTMVarIO
, putTMVarIO
, readTMVarIO
, tryReadTMVarIO
, swapTMVarIO
, tryTakeTMVarIO
, tryPutTMVarIO
, isEmptyTMVarIO
) where
import Control.Concurrent.STM.TMVar as All
hiding (newTMVarIO, newEmptyTMVarIO)
import qualified Control.Concurrent.STM.TMVar as STM
import Internal
newTMVarIO :: MonadIO m => a -> m (TMVar a)
newTMVarIO = liftIO . STM.newTMVarIO
newEmptyTMVarIO :: MonadIO m => m (TMVar a)
newEmptyTMVarIO = liftIO STM.newEmptyTMVarIO
takeTMVarIO :: MonadIO m => TMVar a -> m a
takeTMVarIO = atomically . takeTMVar
tryTakeTMVarIO :: MonadIO m => TMVar a -> m (Maybe a)
tryTakeTMVarIO = atomically . tryTakeTMVar
putTMVarIO :: MonadIO m => TMVar a -> a -> m ()
putTMVarIO = atomically .: putTMVar
tryPutTMVarIO :: MonadIO m => TMVar a -> a -> m Bool
tryPutTMVarIO = atomically .: tryPutTMVar
readTMVarIO :: MonadIO m => TMVar a -> m a
readTMVarIO = atomically . readTMVar
tryReadTMVarIO :: MonadIO m => TMVar a -> m (Maybe a)
tryReadTMVarIO = atomically . tryReadTMVar
swapTMVarIO :: MonadIO m => TMVar a -> a -> m a
swapTMVarIO = atomically .: swapTMVar
isEmptyTMVarIO :: MonadIO m => TMVar a -> m Bool
isEmptyTMVarIO = atomically . isEmptyTMVar