úÎð?  portableunstable mail@n-sch.de -Typeclass for forkable monads, for instance:   instance Forkable IO where  fork = forkIO IThis is only the basic information about how to fork a new thread in the + current monad. To start a new thread in a  application you should  always use  . IThe MState is an abstract data definition for a State monad which can be & used in concurrent applications. Use   to start a new thread with the  same state.  Wait for all TMVars" to get filled by their processes Run a : application, returning both, the function value and the  final state Action to run Initial state value Run a ' application, ignoring the final state Action to evaluate Initial state value Run a * application, ignoring the function value 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. 1Apply a function to the state before running the  KModify the MState, block all other threads from accessing the state in the  meantime. Start a new thread, using the  function from the  type K class. When using this function, the main process will wait for all child  processes to finish. State action to be forked          mstate-0.2Control.Concurrent.MStateForkableforkMState runMState evalMState execMState mapMState withMStatemodifyMforkM runMState'waitForTermination