distributed-process-0.6.6: Cloud Haskell: Erlang-style concurrency in Haskell

Safe HaskellNone
LanguageHaskell98

Control.Distributed.Process.Internal.Closure.BuiltIn

Contents

Synopsis

Remote table

Static dictionaries and associated operations

staticDecode :: Typeable a => Static (SerializableDict a) -> Static (ByteString -> a) #

Static decoder, given a static serialization dictionary.

See module documentation of Control.Distributed.Process.Closure for an example.

sdictUnit :: Static (SerializableDict ()) #

Serialization dictionary for '()'

sdictProcessId :: Static (SerializableDict ProcessId) #

Serialization dictionary for ProcessId

sdictSendPort :: Typeable a => Static (SerializableDict a) -> Static (SerializableDict (SendPort a)) #

Serialization dictionary for SendPort

sdictStatic :: Typeable a => Static (TypeableDict a) -> Static (SerializableDict (Static a)) #

Serialization dictionary for Static.

sdictClosure :: Typeable a => Static (TypeableDict a) -> Static (SerializableDict (Closure a)) #

Serialization dictionary for Closure.

Some static values

sndStatic :: Static ((a, b) -> b) #

The CP type and associated combinators

type CP a b = Closure (a -> Process b) #

CP a b is a process with input of type a and output of type b

idCP :: Typeable a => CP a a #

CP version of id

splitCP :: (Typeable a, Typeable b, Typeable c, Typeable d) => CP a c -> CP b d -> CP (a, b) (c, d) #

CP version of (***)

returnCP :: forall a. Serializable a => Static (SerializableDict a) -> a -> Closure (Process a) #

CP version of return

bindCP :: forall a b. (Typeable a, Typeable b) => Closure (Process a) -> CP a b -> Closure (Process b) #

(Not quite the) CP version of (>>=)

seqCP :: (Typeable a, Typeable b) => Closure (Process a) -> Closure (Process b) -> Closure (Process b) #

CP version of (>>)

CP versions of Cloud Haskell primitives

cpLink :: ProcessId -> Closure (Process ()) #

CP version of link

cpUnlink :: ProcessId -> Closure (Process ()) #

CP version of unlink

cpRelay :: ProcessId -> Closure (Process ()) #

CP version of relay

cpSend :: forall a. Typeable a => Static (SerializableDict a) -> ProcessId -> CP a () #

CP version of send

Support for some CH operations

cpDelayed :: ProcessId -> Closure (Process ()) -> Closure (Process ()) #

CP version of delay