module Control.Distributed.Process.Internal.Node 
  ( runLocalProcess
  ) where

import Control.Monad.Reader (runReaderT)
import Control.Distributed.Process.Internal.Types 
  ( LocalNode
  , LocalProcess
  , Process(unProcess)
  )
import Control.Distributed.Process.Internal.MessageT (runMessageT)  

-- | Deconstructor for 'Process' (not exported to the public API) 
runLocalProcess :: LocalNode -> Process a -> LocalProcess -> IO a
runLocalProcess node proc = runMessageT node . runReaderT (unProcess proc)