{-# LANGUAGE Safe #-} {- | 'MonadLIO' generalizations for "LIO.Concurrent.LMVar". -} 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 -- | See 'LIO.Concurrent.LMVar.newEmptyLMVar'. newEmptyLMVar :: (MonadLIO l m, Label l) => l -> m (M.LMVar l a) newEmptyLMVar = liftLIO . M.newEmptyLMVar -- | See 'LIO.Concurrent.LMVar.newEmptyLMVarP'. newEmptyLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> m (M.LMVar l a) newEmptyLMVarP p = liftLIO . M.newEmptyLMVarP p -- | See 'LIO.Concurrent.LMVar.newLMVar'. newLMVar :: (MonadLIO l m, Label l) => l -> a -> m (M.LMVar l a) newLMVar l = liftLIO . M.newLMVar l -- | See 'LIO.Concurrent.LMVar.newLMVarP'. newLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> l -> a -> m (M.LMVar l a) newLMVarP p l = liftLIO . M.newLMVarP p l -- | See 'LIO.Concurrent.LMVar.takeLMVar'. takeLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> m a takeLMVar = liftLIO . M.takeLMVar -- | See 'LIO.Concurrent.LMVar.takeLMVarP'. takeLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> m a takeLMVarP p = liftLIO . M.takeLMVarP p -- | See 'LIO.Concurrent.LMVar.tryTakeLMVar'. tryTakeLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> m (Maybe a) tryTakeLMVar = liftLIO . M.tryTakeLMVar -- | See 'LIO.Concurrent.LMVar.tryTakeLMVarP'. tryTakeLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> m (Maybe a) tryTakeLMVarP p = liftLIO . M.tryTakeLMVarP p -- | See 'LIO.Concurrent.LMVar.putLMVar'. putLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> a -> m () putLMVar mvar = liftLIO . M.putLMVar mvar -- | See 'LIO.Concurrent.LMVar.putLMVarP'. putLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> a -> m () putLMVarP p mvar = liftLIO . M.putLMVarP p mvar -- | See 'LIO.Concurrent.LMVar.tryPutLMVar'. tryPutLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> a -> m Bool tryPutLMVar mvar = liftLIO . M.tryPutLMVar mvar -- | See 'LIO.Concurrent.LMVar.tryPutLMVarP'. tryPutLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> a -> m Bool tryPutLMVarP p mvar = liftLIO . M.tryPutLMVarP p mvar -- | See 'LIO.Concurrent.LMVar.readLMVar'. readLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> m a readLMVar = liftLIO . M.readLMVar -- | See 'LIO.Concurrent.LMVar.readLMVarP'. readLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> m a readLMVarP p = liftLIO . M.readLMVarP p -- | See 'LIO.Concurrent.LMVar.swapLMVar'. swapLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> a -> m a swapLMVar mvar = liftLIO . M.swapLMVar mvar -- | See 'LIO.Concurrent.LMVar.swapLMVarP'. swapLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> a -> m a swapLMVarP p mvar = liftLIO . M.swapLMVarP p mvar -- | See 'LIO.Concurrent.LMVar.isEmptyLMVar'. isEmptyLMVar :: (MonadLIO l m, Label l) => M.LMVar l a -> m Bool isEmptyLMVar = liftLIO . M.isEmptyLMVar -- | See 'LIO.Concurrent.LMVar.isEmptyLMVarP'. isEmptyLMVarP :: (MonadLIO l m, PrivDesc l p) => Priv p -> M.LMVar l a -> m Bool isEmptyLMVarP p = liftLIO . M.isEmptyLMVarP p