-- | Cloud Haskell (previously Remote Haskell) is a distributed computing -- framework for Haskell. We can describe its interface -- as roughly two levels: the /process layer/, consisting of -- processes, messages, and fault monitoring; and the -- /task layer/, consisting of tasks, promises, and fault recovery. -- This summary module provides the most common interface -- functions for both layers, although advanced users might want to import names -- from the other constituent modules, as well. module Remote ( -- * The process layer remoteInit, ProcessM, NodeId, ProcessId, MatchM, getSelfPid, getSelfNode, send,sendQuiet, spawn, spawnLocal, spawnAnd, spawnLink, callRemote, callRemotePure, callRemoteIO, AmSpawnOptions(..), defaultSpawnOptions, terminate, expect, receive, receiveWait, receiveTimeout, match, matchIf, matchUnknown, matchUnknownThrow, matchProcessDown, logS, say, LogSphere, LogTarget(..), LogFilter(..), LogConfig(..), LogLevel(..), setLogConfig, setNodeLogConfig, getLogConfig, defaultLogConfig, getCfgArgs, UnknownMessageException(..), ServiceException(..), TransmitException(..), TransmitStatus(..), nameSet, nameQuery, nameQueryOrStart, linkProcess, monitorProcess, unmonitorProcess, withMonitor, MonitorAction(..), ProcessMonitorException(..), getPeers, findPeerByRole, PeerInfo, remotable, RemoteCallMetaData, Lookup, Closure, makeClosure, invokeClosure, Payload, genericPut, genericGet, Serializable, -- * Channels SendPort, ReceivePort, newChannel, sendChannel, receiveChannel, CombinedChannelAction, combinedChannelAction, combinePortsBiased, combinePortsRR, mergePortsBiased, mergePortsRR, terminateChannel, -- * The task layer TaskM, runTask, Promise, newPromise, newPromiseHere, newPromiseAtRole, newPromiseNear, toPromise, toPromiseNear, toPromiseImm, readPromise, tlogS, tsay, TaskException(..), MapReduce(..), mapReduce, chunkify, shuffle, ) where import Remote.Init import Remote.Encoding import Remote.Process import Remote.Channel import Remote.Call import Remote.Task import Remote.Peer import Remote.Reg import Remote.Closure