distributed-process-0.7.6: Cloud Haskell: Erlang-style concurrency in Haskell
Safe HaskellNone
LanguageHaskell2010

Control.Distributed.Process.Internal.Closure.Explicit

Synopsis

Documentation

type RemoteRegister = RemoteTable -> RemoteTable Source #

A RemoteRegister is a trasformer on a RemoteTable to register additional static values.

class MkTDict a where Source #

mkStaticVal :: Serializable a => String -> a -> (Static a, RemoteRegister) Source #

This takes an explicit name and a value, and produces both a static reference to the name and a RemoteRegister for it.

mkClosureValSingle :: (Serializable a, Typeable b, MkTDict b) => String -> (a -> b) -> (a -> Closure b, RemoteRegister) Source #

This takes an explicit name, a function of arity one, and creates a creates a function yielding a closure and a remote register for it.

mkClosureVal :: forall func argTuple result closureFunction. (Curry (argTuple -> Closure result) closureFunction, MkTDict result, Uncurry HTrue argTuple func result, Typeable result, Serializable argTuple, IsFunction func HTrue) => String -> func -> (closureFunction, RemoteRegister) Source #

This takes an explict name, a function of any arity, and creates a function yielding a closure and a remote register for it.

call' :: Serializable a => NodeId -> Closure (Process a) -> Process a Source #

Works just like standard call, but with a simpler signature.