PG@      !"#$%&'()*+,-./0123456789:;<=>?(c) Tim Watson 2012 - 2013BSD3 (see the file LICENSE)%Tim Watson <watson.timothy@gmail.com> experimental#non-portable (requires concurrency)None*+0246:FM,The result of an await operation.The operation timed out$The server was unreachable (or died)The name was registered@JA cast message used to atomically give a name/key away to another process.0The (return) value of an attempted registration.The key was already registered)The given key was registered successfullyThis message is delivered to processes which are monioring a registry key. The opaque monitor reference will match (i.e., be equal to) the reference returned from the monitor function, which the  & describes the change that took place. 2Provides information about a key monitoring event.>An opaque reference used for matching monitoring events. See  for more details.=Used to describe a subset of monitoring events to listen for.+receive an event when a key's lease expires+receive an event when a key's owner changes+receive an event when a key is unregistered)receive an event when a key is registered)The result of an un-registration attempt.6The given key was not found (i.e., was not registered)7The given key was invalid and could not be unregistered+The given key was successfully unregistered]A phantom type, used to parameterise registry startup with the required key and value types.!The ! class describes types that can be used as registry keys. The constraints ensure that the key can be stored and compared appropriately."bA registered key. Keys can be mapped to names or (process-local) properties in the registry. The $Z holds the key's value (e.g., a string or similar simple data type, which must provide a ! instance), whilst the % and &/ describe the key's intended use and ownership.'CDescribes how a key will be used - for storing names or properties.(.the key will refer to a (per-process) property)2the key will refer to a name (i.e., named process),:Associate the calling process with the given (unique) key.-Atomically transfer a (registered) name to another process. Has no effect if the name does is not registered to the calling process!.Associate the given (non-unique) property with the current process. If the property already exists, it will be overwritten with the new value./'Register the item at the given address.0Register an item at the given address and associate it with a value. If the property already exists, it will be overwritten with the new value.14Un-register a (unique) name for the calling process.2ALookup the process identified by the supplied key. Evaluates to Nothing if the key is not registered.3LLookup the value of a named property for the calling process. Evaluates to NothingP if the property (key) is not registered. If the assignment to a value of type v~ does not correspond to the type of properties stored by the registry, the calling process will exit with the reason set to InvalidPropertyType.4%Obtain a list of all registered keys.5%Monitor changes to the supplied name.6/Monitor changes to the supplied (property) key.7RLow level monitor operation. For the given key, set up a monitor filtered by any  entries that are supplied.8 Remove a previously set monitor.9Await registration of a given key. This function will subsequently block the evaluating process until the key is registered and a registration event is dispatched to the caller's mailbox.::Await registration of a given key, but give up and return  AwaitTimeoutH if registration does not take place within the specified time period (delay).=bMonadic left fold over all registered names/keys. The fold takes place in the evaluating process.>Evaluate a query on a , in the calling process.?WTests whether or not the supplied key is registered, evaluated in the calling process.ABCDEFGHIJKLMNOPQRSTUVWX@YZ[ \]^_`abcdefghij !"#$%&'()*+,-./0123456789:;<=>?klmnopqrstuvwxyz{|}~@  !"#$%&'()*+,-./0123456789:;<=>?@')("#$%&! *+,./0-1234=?>;<75689:    jABCDEHGFIJKLMNOPQRSTUVWX@YZ[   \]^_`abcdfeghij !"#$%&')(*+,-./0123456789:;<=>?klmnopqrstuvwxyz{|}~       !""#$%&'()*+,-./0123456789:;<=>?@ABBCDEFGGHIJKLMNNOPQQRR?SSTUUVVWWXYZ[\]]^_`abcdefghijklmnopqrstuvwxyz{|}~"distributed-process-registry-0.1.0$Control.Distributed.Process.Registry SearchHandle AwaitResult AwaitTimeoutServerUnreachableRegisteredNameRegisterKeyReplyAlreadyRegistered RegisteredOkRegistryKeyMonitorNotificationKeyUpdateEventKeyOwnerChanged previousOwnernewOwner KeyOwnerDied diedReasonKeyLeaseExpiredKeyUnregistered KeyRegisteredownerRegKeyMonitorRefKeyUpdateEventMaskOnKeyLeaseExpiryOnKeyOwnershipChangeOnKeyUnregisteredOnKeyRegisteredUnregisterKeyReplyUnregisterKeyNotFoundUnregisterInvalidKey UnregisterOkRegistry registryPidKeyableKey keyIdentitykeyTypekeyScopeKeyTypeKeyTypeProperty KeyTypeAliasstartrunaddName giveAwayName addProperty registerName registerValueunregisterName lookupNamelookupPropertyregisteredNames monitorName monitorPropmonitor unmonitorawait awaitTimeoutfindByPropertyfindByPropertyValue foldNames queryNamesmember GiveAwayNameRSgetRSSHashMap QueryDirectQueryDirectValuesQueryDirectPropertiesQueryDirectNamesState_names _properties _monitors_registeredPids_listeningPids_monitorIdCountKMRefrefmask UnmonitorReq MonitorReqRegisterKeyRequnRefUnregisterKeyReq RegNamesReqInvalidPropertyTypeLookupPropReply PropNotFound PropFound LookupPropReqPropReq LookupKeyReqserverDefinitionprocessDefinition handleQueryhandleRegisterNamehandleRegisterPropertyCRhandleRegisterPropertydoRegisterPropertyhandleLookupPropertyhandleUnregisterNamehandleGiveAwayNamehandleMonitorReqhandleUnmonitorReqhandleRegNamesLookuphandleMonitorSignalensureMonitorednotifySubscribersmaskForfindNamenames propertiesmonitorsregisteredPids listeningPidsmonitorIdCount$fFoldableSearchHandle$fFunctorSearchHandle$fBinarySHashMap$fBinaryQueryDirect $fEqKMRef$fHashableKMRef$fBinaryAwaitResult$fBinaryUnmonitorReq$fBinaryMonitorReq$fBinaryGiveAwayName$fBinaryRegisterKeyReply$fBinaryRegisterKeyReq&$fBinaryRegistryKeyMonitorNotification$fBinaryKeyUpdateEvent$fResolvableRegKeyMonitorRef$fHashableRegKeyMonitorRef$fBinaryRegKeyMonitorRef$fHashableKeyUpdateEventMask$fBinaryKeyUpdateEventMask$fBinaryUnregisterKeyReply$fBinaryUnregisterKeyReq$fBinaryRegNamesReq$fBinaryInvalidPropertyType$fBinaryLookupPropReply$fBinaryLookupPropReq$fBinaryLookupKeyReq$fLinkableRegistry$fResolvableRegistry$fBinaryRegistry $fKeyablea $fHashableKey $fBinaryKey$fHashableKeyType$fBinaryKeyType