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