module LIO.Concurrent.LChan.Trans (
newLChan
, newLChanP
, writeLChan
, writeLChanP
, readLChan
, readLChanP
, dupLChan
, dupLChanP
) where
import safe LIO.Core
import safe LIO.Label
import safe qualified LIO.Concurrent.LChan as C
newLChan :: (MonadLIO l m, Label l) => l -> m (C.LChan l a)
newLChan = liftLIO . C.newLChan
newLChanP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> m (C.LChan l a)
newLChanP p = liftLIO . C.newLChanP p
writeLChan :: (MonadLIO l m, Label l) => C.LChan l a -> a -> m ()
writeLChan c = liftLIO . C.writeLChan c
writeLChanP :: (MonadLIO l m, PrivDesc l p) => Priv p -> C.LChan l a -> a -> m ()
writeLChanP p c = liftLIO . C.writeLChanP p c
readLChan :: (MonadLIO l m, Label l) => C.LChan l a -> m a
readLChan = liftLIO . C.readLChan
readLChanP :: (MonadLIO l m, PrivDesc l p) => Priv p -> C.LChan l a -> m a
readLChanP p = liftLIO . C.readLChanP p
dupLChan :: (MonadLIO l m, Label l) => C.LChan l a -> m (C.LChan l a)
dupLChan = liftLIO . C.dupLChan
dupLChanP :: (MonadLIO l m, PrivDesc l p) => Priv p -> C.LChan l a -> m (C.LChan l a)
dupLChanP p = liftLIO . C.dupLChanP p