mongoDB-1.1.1: Driver (client) for MongoDB, a free, scalable, fast, document DBMS

Control.Monad.MVar

Description

Lift MVar operations so you can do them within monads stacked on top of IO. Analogous to MonadIO

Synopsis

Documentation

data MVar a

An MVar (pronounced "em-var") is a synchronising variable, used for communication between concurrent threads. It can be thought of as a a box, which may be empty or full.

Instances

newMVar :: MonadIO m => a -> m (MVar a)Source

takeMVar :: MonadIO m => MVar a -> m aSource

putMVar :: MonadIO m => MVar a -> a -> m ()Source

readMVar :: MonadIO m => MVar a -> m aSource

swapMVar :: MonadIO m => MVar a -> a -> m aSource

tryTakeMVar :: MonadIO m => MVar a -> m (Maybe a)Source

tryPutMVar :: MonadIO m => MVar a -> a -> m BoolSource

modifyMVar :: MonadControlIO m => MVar a -> (a -> m (a, b)) -> m bSource

modifyMVar_ :: MonadControlIO m => MVar a -> (a -> m a) -> m ()Source

withMVar :: MonadControlIO m => MVar a -> (a -> m b) -> m bSource

liftIO :: MonadIO m => forall a. IO a -> m a

Lift a computation from the IO monad.

class MonadIO m => MonadControlIO m

MonadControlIO is the class of IO-based monads supporting an extra operation liftControlIO, enabling control operations on IO to be lifted into the monad.