úÎâ¼  portableunstable mail@n-sch.deKThe MState monad is a state monad for concurrent applications. To create a 8 new thread sharing the same (modifiable) state use the  function.  Wait for all TMVars# to get filled by their processes. Run a 9 application, returning both, the function value and the L final state. Note that this function has to wait for all threads to finish ' before it can return the final state. Action to run Initial state value Run a 5 application, ignoring the final state. If the first  argument is : this function will wait for all threads to finish before L returning the final result, otherwise it will return the function value as  soon as its acquired.  Wait for all threads to finish? Action to evaluate Initial state value Run a 9 application, ignoring the function value. This function G will wait for all threads to finish before returning the final state. Action to execute Initial state value $Map a stateful computation from one (return value, state) pair to  another. See Control.Monad.State.Lazy% for more information. Be aware that * both MStates still share the same state.  Modify the 6, block all other threads from accessing the state in  the meantime (using  from the Control.Concurrent.STM library). Start a new stateful thread.   Kill all threads in the current  application.          mstate-0.2.3Control.Concurrent.MStateMState runMState evalMState execMState mapMStatemodifyMmodifyM_forkMforkM_ killMState runMState'waitForTerminationrunAndWaitMaybeghc-primGHC.BoolTruebase GHC.Conc.Sync atomicallyfork mtl-2.0.1.0Control.Monad.State.Classgetsmodifyputget MonadState