kL      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ABCDEFGHIJKSafeCV Opaque lock.L Take a lock.M Release lock.=Create exclusive lock. Only one process could take such lock.TCreate quantity lock. A fixed number of processes can take this lock simultaniously.Run action under a held lock.NSafe "#;=CNVMOpaque type of MultiMaps.dClass of things that can be inserted in a map or a set (of mapped values), for which instances of Eq and Hashable must be present.O(n) Reduce this map by applying a binary operator to all elements, using the given starting value (typically the right-identity of the operator).    OPSafe0  Safe  !"#  !#"QRNone 16;=>?AVBQ&$Given when a server is unobtainable.((A simple means of mapping to a receiver.-?Class of things that you can route/send serializable message to.+Send a message to the target asynchronously/ Send some NFDataB message to the target asynchronously, forcing evaluation (i.e., deepseq ) beforehand.0*Class of things that can be resolved to a S.1*Resolve the reference to a process id, or Nothing if resolution fails2 Unresolvable  Addressable Message3;Class of things that can be killed (or instructed to exit).4/Kill (instruct to exit) generic process, using T primitive.5/Kill (instruct to exit) generic process, using U primitive.9Class of things to which a Process can link itself.: Create a link with the supplied object.; Provides a reason for process termination.<indicates normal exit=normal response to a ?>abnormal (error) shutdown? A ubiquitous shutdown signalm that can be used to maintain a consistent shutdown/stop protocol for any process that wishes to handle it.ADUsed internally in whereisOrStart. Sent as (RegisterSelf,ProcessId).C#Simple representation of a channel.DWait cancellation message.FGenerates unique Gq for messages and response pairs. Each process that depends, directly or indirectly, on the call mechanisms in 'Control.Distributed.Process.Global.CallH should have at most one TagPool on which to draw unique message tags.GWTags provide uniqueness for messages, so that they can be matched with their response.HIntroduces a class that brings NFData into scope along with Serializable, such that we can force evaluation. Intended for use with the UnsafePrimitives module (which wraps ,Control.Distributed.Process.UnsafePrimitives-), and guarantees evaluatedness in terms of NFData. Please note that we cannot guarantee that an NFData( instance will behave the same way as a Binaryc one with regards evaluation, so it is still possible to introduce unexpected behaviour by using unsafe primitives in this way.I?Create a new per-process source of unique message identifiers.J Extract a new identifier from a F.KA synchronous version of V-, this monitors the remote node and returns Nothing if the node goes down (since a remote node failing or being non-contactible has the same effect as a process not being registered from the caller's point of view).LTresolve the Resolvable or die with specified msg plus details of what didn't resolve'&'()*+,-./0123456789:;><=?@ABCDEFGHIJKL'GFIJ9:345012-./678,()*+ABKLDEC?@;<=>&'H &'()*+-./0123456789:;<=>?@ABDEC(c) Tim Watson 2013 - 2017, Parallel Scientific (Jeff Epstein) 2012BSD3 (see the file LICENSE)None 016;=>?Vbu Monitor any  Resolvable object.v Wait until  ResolvableC object will exit. Return immediately if object can't be resolved.wSend message to  Addressable object.xACheck if specified process is alive. Information may be outdated.yApply the supplied expression n timeszLike  but sans space leak{Spawn a new (local) process. This variant takes an initialisation action and a secondary expression from the result of the initialisation to  Process ()=. The spawn operation synchronises on the completion of the beforeT action, such that the calling process is guaranteed to only see the newly spawned  ProcessId5 once the initialisation has successfully completed.|Node local version of W8. Note that this is just the sequential composition of X and Y. (The Unified\ semantics that underlies Cloud Haskell does not even support a synchronous link operation)}Like |#, but monitors the spawned process.~CH's Y primitive, unlike Erlang's, will trigger when the target process dies for any reason. This function has semantics like Erlang's: it will trigger Z& only when the target dies abnormally.Returns the pid of the process that has been registered under the given name. This refers to a local, per-node registration, not globalx registration. If that name is unregistered, a process is started. This is a handy way to start per-node named servers.[RHelper function will register itself under a given name and send result to given Process.A remote equivalent of . It deals with the node registry on the given node, and the process, if it needs to be started, will run on that node. If the node is inaccessible, Nothing will be returned.An alternative to \I that allows both predicate and action to be expressed in one parameter.?Safe (i.e., monitored) waiting on an expected response/message.,-./0123456789:Kuvwxyz{|}~,-./0129:345678{|}~KyuvxzwNone16VrY]A generic input channel that can be read from in the same fashion as a typed channel (i.e.,  ReceivePort3). To read from an input stream in isolation, see . To compose an @ with reads on a process' mailbox (and/or typed channels), see . Wrap any Typeable datum in a PCopyK. We hide the constructor to discourage arbitrary uses of the type, since PCopy7 is a specialised and potentially dangerous construct. Matches on PCopy m and returns the m within. This potentially allows us to bypass serialization (and the type constraints it enforces) for local message passing (i.e., with UnencodedMessage$ data), since PCopy is just a shim. Given a raw Message, attempt to unwrap a Typeable datum from an enclosing PCopy wrapper. Matches on a TypedChannel (PCopy a). Create a new . Read from an . This is a blocking operation. Constructs a Match for a given  InputChannel. ]^_`a,(c) Tim Watson, Jeff Epstein, Alan ZimmermanBSD3 (see the file LICENSE) Tim Watson experimental#non-portable (requires concurrency)None16|)Send to a process when a timeout expires. Represents a timeout! in terms of microseconds, where b stands for infinity and Just 0 , no-delay.Represents either a delay of 5, an infinite wait or no delay (i.e., non-blocking).A time interval.)Defines the time unit for a Timeout valueconverts the supplied  TimeInterval to microseconds&Convenience for making timeouts; e.g., ?receiveTimeout (after 3 Seconds) [ match (\"ok" -> return ()) ]Convenience for making ; e.g., "let ti = within 5 Seconds in .....given a number, produces a  TimeInterval of microsecondsgiven a number, produces a  TimeInterval of millisecondsgiven a number, produces a  TimeInterval of secondsgiven a number, produces a  TimeInterval of minutesgiven a number, produces a  TimeInterval of hoursconverts the supplied TimeUnit to microsecondsConstructs an inifinite .Constructs a no-wait Sends the calling process TimeoutNotification tag after time microsecondsgiven a  TimeInterval, provide an equivalent NominalDiffTimgiven a NominalDiffTim, provide an equivalent  TimeInterval@given a Delay, provide an equivalent NominalDiffTimgiven a NominalDiffTim, provide an equivalent Delay@ Create a c from a number of microseconds.Allow (+) and (-) operations on  TimeIntervalsAllow (+) and (-) operations on Delays d (c) Tim Watson 2013 - 2017BSD3 (see the file LICENSE)%Tim Watson <watson.timothy@gmail.com> experimental#non-portable (requires concurrency)NoneCreate an unencoded Message for any  Serializable type. (c) Tim Watson 2012 - 2017BSD3 (see the file LICENSE)%Tim Watson <watson.timothy@gmail.com> experimental#non-portable (requires concurrency)None16 represents a tick event that timers can generatee#cancellation message sent to timersan opaque reference to a timerblocks the calling Process for the specified TimeInterval. Note that this function assumes that a blocking receive is the most efficient approach to acheiving this, however the runtime semantics (particularly with regards scheduling) should not differ from threadDelay in practise.Literate way of saying sleepFor 3 Seconds.nstarts a timer which sends the supplied message to the destination process after the specified time interval.*runs the supplied process action(s) after t has elapsedcalls exit pid reason after t has elapsed"kills the specified process after t has elapsedstarts a timer that repeatedly sends the supplied message to the destination process each time the specified time interval elapses. To stop messages from being sent in future,  can be called.?runs the supplied process action(s) repeatedly at intervals of tresets a running timer. Note: Cancelling a timer does not guarantee that all its messages are prevented from being delivered to the target process. Also note that resetting an ongoing timer (started using the  or  functions) will only cause the current elapsed period to time out, after which the timer will continue running. To stop a long-running timer permanently, you should use  instead.permanently cancels a timercancels a running timer and flushes any viable timer messages from the process' message queue. This function should only be called by the process expecting to receive the timer's messages!sets up a timer that sends  repeatedly at intervals of tfgehi None6&'()*+,-./0123456789:;><=?@CDEFGHIJuvwxy{|}~1,012-./9:345678H()*+?@;<=>DE&'CGFu{|}~yxwvIJ (c) Tim Watson 2013 - 2017BSD3 (see the file LICENSE)%Tim Watson <watson.timothy@gmail.com> experimental#non-portable (requires concurrency)None "#16;=>KV,Start a system logger that writes to a file. This is a  very basic" file logging facility, that uses regular buffered file I/O (i.e., System.IO.hPutStrLne et al) under the covers. The handle is closed appropriately if/when the logging process terminates.See :Control.Distributed.Process.Management.mxAgentWithFinalizeA for futher details about management agents that use finalizers.Start a  system logger process as a management agent.'This expression does the actual logging1An expression used to clean up any residual state The initial  to use2An expression used to format logging messages/text!     !     jklmnopqrstuvwxyz (c) Tim Watson 2013 - 2017BSD3 (see the file LICENSE)%Tim Watson <watson.timothy@gmail.com> experimental#non-portable (requires concurrency)None16ї*VSent to subscribing processes when a dis-connection (from a remote node) is detected.,RSent to subscribing processes when a connection (from a remote node) is detected..The  MxAgentId for the node monitoring agent./Start monitoring node connection/disconnection events. When a connection event occurs, the calling process will receive a message  NodeUp NodeId: in its mailbox. When a disconnect occurs, the corollary NodeDown NodeId# message will be delivered instead.No guaranatee is made about the timeliness of the delivery, nor can the receiver expect that the node (for which it is being notified) is still upconnected or downUdisconnected at the point when it receives a message from the node monitoring agent.0Stop monitoring node connection/disconnection events. This does not flush the caller's mailbox, nor does it guarantee that any/all node up/down notifications will have been delivered before it is evaluated.1-Starts the node monitoring agent. No call to  monitorNodes and unmonitorNodesN will have any effect unless the agent is already running. Note that we make no guarantees what-so-everN about the timeliness or ordering semantics of node monitoring notifications.*+,-./01,-*+.1/0*+,-{|}~+(c) Parallel Scientific (Jeff Epstein) 2012BSD3 (see the file LICENSE)None1V@!Sends a message of type a to the given process, to be handled by a corresponding callResponse... function, which will send back a message of type b. The tag is per-process unique identifier of the transaction. If the timeout expires or the target process dies, Nothing will be returned.ALike @C, but with no timeout. Returns Nothing if the target process dies.BLike @I, but sends the message to multiple recipients and collects the results.C+Produces a Match that can be used with the ) family of message-receiving functions.  callResponse. will respond to a message of type a sent by @*, and will respond with a value of type b.F+Produces a Match that can be used with the a family of message-receiving functions. When calllForward receives a message of type from from @ (and similar), it will forward the message to another process, who will be responsible for responding to it. It is the user's responsibility to ensure that the forwarding process is linked to the destination process, so that if it fails, the sender will be notified.GThe message handling code is started in a separate thread. It's not automatically linked to the calling thread, so if you want it to be terminated when the message handling thread dies, you'll need to call link yourself. @ABCDEFGH A@BCHEDFG !"##$%&'()*%&'()+,--./0123456789:;<=>?@ABCDEEFFGHHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                    ! " # $ % & ' ( ( ) ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ;<=>?@ABCDEFGHIJK*$LMNLOPLOQLORLSTLSULOVLMWXLOYZZ[\]^_`ab c d d e f  g  h h i j j k l m n o p p q q r r s sLOtuuvvwxyz{7distributed-process-extras-0.3.5-7qzKH0dWmcLBNm6JMkdrjzControl.Concurrent.Utils?Control.Distributed.Process.Extras.Internal.Containers.MultiMap;Control.Distributed.Process.Extras.Internal.Queue.PriorityQ6Control.Distributed.Process.Extras.Internal.Queue.SeqQ1Control.Distributed.Process.Extras.Internal.Types6Control.Distributed.Process.Extras.Internal.Primitives2Control.Distributed.Process.Extras.Internal.Unsafe'Control.Distributed.Process.Extras.Time3Control.Distributed.Process.Extras.UnsafePrimitives(Control.Distributed.Process.Extras.Timer"Control.Distributed.Process.Extras,Control.Distributed.Process.Extras.SystemLog-Control.Distributed.Process.Extras.Monitoring'Control.Distributed.Process.Extras.Call Control.MonadforeverLockmkExclusiveLockmkQLockwithLockMultiMap Insertableemptysizeinsertmemberlookupdeletefilter filterWithKey foldrWithKeytoList $fInsertablea$fFoldableMultiMap PriorityQqisEmpty singletonenqueuedequeuepeekSeqQ$fEqSeqQ $fShowSeqQServerDisconnected RecipientPid RegisteredRemoteRegistered AddressableRoutablesendTo unsafeSendTo ResolvableresolveunresolvableMessageKillablekillProcexitProc Monitored mkMonitor checkMonitorLinkablelinkTo ExitReason ExitNormal ExitShutdown ExitOtherShutdown RegisterSelfChannel CancelWaitTagPoolTagNFSerializable newTagPoolgetTag whereisRemote resolveOrDie$fNFSerializableSendPort$fNFSerializablea$fNFDataCancelWait$fBinaryCancelWait$fNFDataRegisterSelf$fBinaryRegisterSelf$fNFDataShutdown$fBinaryShutdown$fNFDataExitReason$fBinaryExitReason$fResolvable(,)$fResolvable[]$fResolvableProcessId0$fMonitoredaMonitorRefProcessMonitorNotification $fKillablep$fRoutable(->) $fRoutable(,) $fRoutable[]$fRoutableProcessId$fAddressableProcessId$fRoutableRecipient$fResolvableRecipient$fNFDataRecipient$fBinaryRecipient$fNFDataServerDisconnected$fBinaryServerDisconnected$fEqCancelWait$fShowCancelWait$fGenericCancelWait$fGenericRegisterSelf$fGenericShutdown$fShowShutdown $fEqShutdown$fGenericExitReason$fEqExitReason$fShowExitReason$fGenericRecipient$fShowRecipient $fEqRecipient$fGenericServerDisconnectedmonitor awaitExitdeliverisProcessAlivetimesforever'spawnSignalledspawnLinkLocalspawnMonitorLocal linkOnFailurewhereisOrStart __remoteTablewhereisOrStartRemote matchCond awaitResponse InputStreamNullPCopyInvalidBinaryShimpCopymatchPpUnwrap matchChanPnewInputStreamreadInputStreammatchInputStream $fBinaryPCopy $fNFDataPCopy$fNFDataNullInputStream$fBinaryNullInputStream$fShowInvalidBinaryShim$fEqInvalidBinaryShim$fGenericPCopy$fGenericNullInputStream$fShowNullInputStream$fEqNullInputStreamTimeoutNotificationTimeoutDelayInfinityNoDelay TimeIntervalTimeUnitDaysHoursMinutesSecondsMillisMicros asTimeoutafterwithin microSeconds milliSecondssecondsminuteshours timeToMicros infiniteWaitnoWaittimeouttimeIntervalToDiffTimediffTimeToTimeIntervaldelayToDiffTimediffTimeToDelaymicrosecondsToNominalDiffTime$fNFDataTimeUnit$fBinaryTimeUnit$fNumTimeInterval$fNFDataTimeInterval$fBinaryTimeInterval $fNumDelay $fNFDataDelay $fBinaryDelay$fBinaryTimeoutNotification$fGenericTimeUnit $fEqTimeUnit$fShowTimeUnit$fGenericTimeInterval$fEqTimeInterval$fShowTimeInterval$fGenericDelay $fEqDelay $fShowDelaysendnsend sendToAddrsendChan wrapMessageTickTimerRefsleepsleepFor sendAfterrunAfter exitAfter killAfter startTimer periodically resetTimer cancelTimer flushTimerticker$fNFDataTimerConfig$fBinaryTimerConfig $fNFDataTick $fBinaryTick$fNFDataSleepingPill$fBinarySleepingPill$fGenericTimerConfig$fEqTimerConfig$fShowTimerConfig $fGenericTick$fEqTick $fShowTick$fGenericSleepingPill$fEqSleepingPill$fShowSleepingPillLogger logMessageToLogtoLog LogClientLogTextLogChan LogFormatLogLevelDebugInfoNoticeWarningErrorCriticalAlert EmergencymxLogId logChannelreportclientdebuginfonoticewarningerrorcriticalalert emergencysendLog addFormatter systemLogFile systemLog$fNFDataLogLevel$fBinaryLogLevel$fNFDataSetLevel$fBinarySetLevel$fBinaryAddFormatter$fNFDataLogMessage$fBinaryLogMessage$fRoutableLogChan$fRoutableLogClient$fResolvableLogClient$fToLogMessage $fToLog[]$fLoggerLogChan$fLoggerLogClient$fGenericLogLevel $fEqLogLevel$fReadLogLevel$fShowLogLevel $fOrdLogLevel$fEnumLogLevel$fGenericSetLevel$fGenericAddFormatter$fNFDataAddFormatter$fGenericLogMessage$fShowLogMessageNodeDownNodeUpnodeMonitorAgentId monitorNodesunmonitorNodes nodeMonitor$fNFDataRegister$fBinaryRegister$fNFDataUnRegister$fBinaryUnRegister$fNFDataNodeUp$fBinaryNodeUp$fNFDataNodeDown$fBinaryNodeDown$fGenericRegister$fGenericUnRegister$fGenericNodeUp $fShowNodeUp$fGenericNodeDown$fShowNodeDown callTimeoutcallAt multicall callResponsecallResponseDeferIfcallResponseDefer callForwardcallResponseAsynccallResponseIf$fBinaryMulticall$fBinaryMulticallResponse$fEqMulticallResponseTypeacquirereleaseMhmap0distributed-process-0.7.4-6LxXQAX8ntzEzbGCRI9i4C*Control.Distributed.Process.Internal.Types ProcessId/Control.Distributed.Process.Internal.Primitiveskillexitwhereis*Control.Distributed.Process.Internal.Spawn spawnLinkspawnlinkProcessLinkException registerSelfmatchIfNullInputStreamReadChanReadSTMbaseGHC.BaseNothing time-1.8.0.2(Data.Time.Clock.Internal.NominalDiffTimeNominalDiffTime TimerConfig SleepingPillResetCancelagent LogMessageLogDataLogStateoutputcleanuplevelformat formatters AddFormatterSetLevel UnRegisterRegister receiveWaitMulticallResponse MulticallMulticallResponseTypeMulticallAcceptMulticallForwardMulticallReject