module LIO.Concurrent.LMVar.Trans
( newEmptyLMVar
, newEmptyLMVarP
, newLMVar
, newLMVarP
, takeLMVar
, takeLMVarP
, tryTakeLMVar
, tryTakeLMVarP
, putLMVar
, putLMVarP
, tryPutLMVar
, tryPutLMVarP
, readLMVar
, readLMVarP
, swapLMVar
, swapLMVarP
, isEmptyLMVar
, isEmptyLMVarP
) where
import safe LIO.Core
import safe LIO.Label
import safe qualified LIO.Concurrent.LMVar as M
newEmptyLMVar :: (MonadLIO l m, Label l) => l -> m (M.LMVar l a)
newEmptyLMVar = liftLIO . M.newEmptyLMVar
newEmptyLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> m (M.LMVar l a)
newEmptyLMVarP p = liftLIO . M.newEmptyLMVarP p
newLMVar :: (MonadLIO l m, Label l) => l -> a -> m (M.LMVar l a)
newLMVar l = liftLIO . M.newLMVar l
newLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> a -> m (M.LMVar l a)
newLMVarP p l = liftLIO . M.newLMVarP p l
takeLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> m a
takeLMVar = liftLIO . M.takeLMVar
takeLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> m a
takeLMVarP p = liftLIO . M.takeLMVarP p
tryTakeLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> m (Maybe a)
tryTakeLMVar = liftLIO . M.tryTakeLMVar
tryTakeLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> m (Maybe a)
tryTakeLMVarP p = liftLIO . M.tryTakeLMVarP p
putLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> a -> m ()
putLMVar mvar = liftLIO . M.putLMVar mvar
putLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> a -> m ()
putLMVarP p mvar = liftLIO . M.putLMVarP p mvar
tryPutLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> a -> m Bool
tryPutLMVar mvar = liftLIO . M.tryPutLMVar mvar
tryPutLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> a -> m Bool
tryPutLMVarP p mvar = liftLIO . M.tryPutLMVarP p mvar
readLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> m a
readLMVar = liftLIO . M.readLMVar
readLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> m a
readLMVarP p = liftLIO . M.readLMVarP p
swapLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> a -> m a
swapLMVar mvar = liftLIO . M.swapLMVar mvar
swapLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> a -> m a
swapLMVarP p mvar = liftLIO . M.swapLMVarP p mvar
isEmptyLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> m Bool
isEmptyLMVar = liftLIO . M.isEmptyLMVar
isEmptyLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> m Bool
isEmptyLMVarP p = liftLIO . M.isEmptyLMVarP p