distributed-process-monad-control-0.5.1.3: Orphan instances for MonadBase and MonadBaseControl.
Safe HaskellNone
LanguageHaskell2010

Control.Distributed.Process.MonadBaseControl

Description

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

MonadBaseControl IO Process Source # 
Instance details

Associated Types

type StM Process a 
Instance details

Defined in Control.Distributed.Process.MonadBaseControl

MonadBase IO Process Source # 
Instance details

Methods

liftBase :: IO α -> Process α #