distributed-process-monad-control- 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

Orphan instances

MonadBase IO Process Source # 


liftBase :: IO α -> Process α #

MonadBaseControl IO Process Source # 

Associated Types

type StM (Process :: * -> *) a :: * #