stm-lifted-0.1.0.0: src/Control/Concurrent/STM/TChan/Lifted.hs
module Control.Concurrent.STM.TChan.Lifted
( module All
, newTChanIO
, newBroadcastTChanIO
, dupTChanIO
, readTChanIO
, tryReadTChanIO
, peekTChanIO
, tryPeekTChanIO
, writeTChanIO
, unGetTChanIO
, isEmptyTChanIO
, cloneTChanIO
) where
import Control.Concurrent.STM.TChan as All
hiding (newTChanIO, newBroadcastTChanIO)
import qualified Control.Concurrent.STM.TChan as STM
import Internal
newTChanIO :: MonadIO m => m (TChan a)
newTChanIO = liftIO STM.newTChanIO
newBroadcastTChanIO :: MonadIO m => m (TChan a)
newBroadcastTChanIO = liftIO STM.newBroadcastTChanIO
dupTChanIO :: MonadIO m => TChan a -> m (TChan a)
dupTChanIO = atomically . dupTChan
readTChanIO :: MonadIO m => TChan a -> m a
readTChanIO = atomically . readTChan
tryReadTChanIO :: MonadIO m => TChan a -> m (Maybe a)
tryReadTChanIO = atomically . tryReadTChan
peekTChanIO :: MonadIO m => TChan a -> m a
peekTChanIO = atomically . peekTChan
tryPeekTChanIO :: MonadIO m => TChan a -> m (Maybe a)
tryPeekTChanIO = atomically . tryPeekTChan
writeTChanIO :: MonadIO m => TChan a -> a -> m ()
writeTChanIO = atomically .: writeTChan
unGetTChanIO :: MonadIO m => TChan a -> a -> m ()
unGetTChanIO = atomically .: unGetTChan
isEmptyTChanIO :: MonadIO m => TChan a -> m Bool
isEmptyTChanIO = atomically . isEmptyTChan
cloneTChanIO :: MonadIO m => TChan a -> m (TChan a)
cloneTChanIO = atomically . cloneTChan