úÎ!MvJ^%      !"#$None;<=>?CQV.nqeWrapped  hiding its implementation.nqeÜMailboxes are used to communicate with processes (actors). A process will usually listen in a loop for events entering its mailbox. A process is its mailbox, so it may be named as the process that it communicates with.:m + Control.Monad NQE UnliftIO-registry <- newTQueueIO :: IO (TQueue String)=let run = receive registry >>= putStrLn . ("Registered: " ++)=withAsync run $ \a -> "Bruce Wayne" `send` registry >> wait aRegistered: Bruce WaynenqeeSTM action that responds true if the mailbox is empty. Useful to avoid blocking on an empty mailbox.nqecSTM action that responds true if the mailbox is full and would block if a new message is received.nqeŽSTM action to send a message to a mailbox. This is usually called from a process that wishes to communicate with actor that owns the mailbox.nqenSTM action to receive a message from a mailbox. This should be called from the process that owns the mailbox.nqehPut a message back in the mailbox so that it is the next one to be received. Used for pattern matching.nqe!STM action for an event listener.nqe-STM action to reply to a synchronous request. nqe Create a new  with a %K identifier inside. If you run this function more than once with the same *, its results will be different from the & or ' point of view. nqeSend a message to a mailbox. nqenReceive a message from the mailbox. This function should be called only by the process that owns the malibox. nqeÿ.Use a partially-applied message type that takes a `Reply a` as its last argument. This function will create the STM action for the response, send the message to a process and await for the STM action to be fulfilled before responding response. It implements synchronous communication with a process.Example::m + NQE UnliftIO-data Message = Square Integer (Reply Integer)-doubler <- newTQueueIO :: IO (TQueue Message)Flet proc = receive doubler >>= \(Square i r) -> atomically $ r (i * i)/withAsync proc $ \_ -> Square 2 `query` doubler4In this example the Square constructor takes a A action as its last argument. It is passed partially-applied to query, which adds a new " action before sending it to the doubler< and then waiting for it. The doubler process will run the Reply< action n STM with the reply as its argument. In this case i * i. nqexTest all the messages in a mailbox against the supplied function and return the output of the function only when it is (Š. Will block until a message matches. All messages that did not match are left in the mailbox. Only call from process that owns mailbox.nqe7Match a message in the mailbox as an atomic STM action.nqeCheck if the mailbox is empty.)nqeIPut a message at the start of a mailbox, so that it is the next one read.  None<>?QV/¿nqe.Consumes messages and sends them to a mailbox.None<9,nqeWrapper for a  that can receive *.*nqe1Subscribe or unsubscribe from an event publisher.nqe Subscribe an  to events from a @. Unsubscribe when action finishes. Pass a mailbox constructor.nqe Subscribe an  to a  generating events.nqeUnsubscribe an  from a  events.nqe3Start a publisher that will receive events from an ++ action, and subscription requests from a j mailbox. Events will be forwarded atomically to all subscribers. Full mailboxes will not receive events.nqe%mailbox creator for this subscriptionnqe!unsubscribe when this action endsNone&'<>?CVHõ nqe>Supervisor strategies to decide what to do when a child stops.nqe run this + action when a process stopsnqe*kill all processes and propagate exceptionnqe5ignore processes that stop without raising exceptionsnqe-do nothing and keep running if a process dies nqe4A supervisor will start, stop and monitor processes.!nqeRun a supervisor with a given  a I to control it, and a list of children to launch. The list can be empty.,nqe>Internal action to wait for a child process to finish running.-nqe+Internal function to start a child process..nqe)Internal fuction to stop a child process."nqeqAdd a new child process to the supervisor. The child process will run in the supervisor context. Will return an /V for the child. This function will not block or raise an exception if the child dies.#nqeHStop a child process controlled by the supervisor. Must pass the child /%. Will not wait for the child to die.$nqe%Stop the supervisor and its children.  !"#$ !"#$NoneI{   !"#$SafeJ9012345678      !"#$%&'()*+,-./01234567895:;<=>?@ABCDEFGHIJ nqe-0.5.0-A4UPcE4aZmWISkwyUwheV3Control.Concurrent.NQE.ProcessControl.Concurrent.NQE.ConduitControl.Concurrent.NQE.PubSub!Control.Concurrent.NQE.SupervisorNQE Paths_nqeInboxMailboxmailboxEmptySTMmailboxFullSTMsendSTM receiveSTM requeueSTMListenReplynewInboxsendreceivequery receiveMatchreceiveMatchSTM mailboxEmpty$fMailboxTBQueuemsg$fMailboxTQueuemsg$fMailboxInboxmsg$fHashableInbox $fEqInboxconduitMailbox Publisher withPubSub subscribe unsubscribe publisherStrategyNotifyKillAllIgnoreGraceful IgnoreAllSupervisorMessage supervisoraddChild removeChildstopSupervisorunique-0-LjT6yPm5tvHGAyJgSQBM4cControl.Concurrent.UniqueUniqueghc-prim GHC.ClassesEq'hashable-1.2.7.0-8MkquYouWwiLIw3HmVGSkNData.Hashable.ClassHashablebaseGHC.BaseJustrequeueListSTM ControlMsg GHC.Conc.SyncSTM waitForChild startChild stopChild"async-2.2.1-1bsiEsDyYvD1Jx6uPPJyV0Control.Concurrent.AsyncAsyncversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName