distributed-process-monad-control-0.5.2: Orphan instances for MonadBase and MonadBaseControl.

Safe HaskellNone



This module only exports instances for MonadBase IO and MonadBaseControl IO for the Process monad. This is for use in conjunction with a library requiring these instances, such as the lifted-base package.

Please excercise caution in usage of this instance, as it can enable use of functions such as forkIO (or, fork from 'lifted-base') which compromise invariants in the Process monad and can lead to confusing and subtle issues. Always use the Cloud Haskell functions such as spawnLocal instead.

example usage:

import Control.Distributed.Process.MonadBaseControl()
import Control.Concurrent.MVar.Lifted (withMVar)
processWithMVar :: MVar a -> (a -> Process b) -> Process b
processWithMvar = withMVar