module Control.Concurrent.STM.TBQueue.Lifted
( module All
, newTBQueueIO
, readTBQueueIO
, tryReadTBQueueIO
, flushTBQueueIO
, peekTBQueueIO
, tryPeekTBQueueIO
, writeTBQueueIO
, unGetTBQueueIO
, lengthTBQueueIO
, isEmptyTBQueueIO
, isFullTBQueueIO
) where
import Numeric.Natural (Natural)
import Control.Concurrent.STM.TBQueue as All hiding (newTBQueueIO)
import qualified Control.Concurrent.STM.TBQueue as STM
import Internal
newTBQueueIO :: MonadIO m => Natural -> m (TBQueue a)
newTBQueueIO = liftIO . STM.newTBQueueIO
writeTBQueueIO :: MonadIO m => TBQueue a -> a -> m ()
writeTBQueueIO = atomically .: writeTBQueue
readTBQueueIO :: MonadIO m => TBQueue a -> m a
readTBQueueIO = atomically . readTBQueue
tryReadTBQueueIO :: MonadIO m => TBQueue a -> m (Maybe a)
tryReadTBQueueIO = atomically . tryReadTBQueue
flushTBQueueIO :: MonadIO m => TBQueue a -> m [a]
flushTBQueueIO = atomically . flushTBQueue
peekTBQueueIO :: MonadIO m => TBQueue a -> m a
peekTBQueueIO = atomically . peekTBQueue
tryPeekTBQueueIO :: MonadIO m => TBQueue a -> m (Maybe a)
tryPeekTBQueueIO = atomically . tryPeekTBQueue
unGetTBQueueIO :: MonadIO m => TBQueue a -> a -> m ()
unGetTBQueueIO = atomically .: unGetTBQueue
lengthTBQueueIO :: MonadIO m => TBQueue a -> m Natural
lengthTBQueueIO = atomically . lengthTBQueue
isEmptyTBQueueIO :: MonadIO m => TBQueue a -> m Bool
isEmptyTBQueueIO = atomically . isEmptyTBQueue
isFullTBQueueIO :: MonadIO m => TBQueue a -> m Bool
isFullTBQueueIO = atomically . isFullTBQueue