Îõ³h&Y³Ñ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPSafe ® PSQueueA mapping from keys k to priorites p. PSQueuek :-> p binds the key k with the priority p.PSQueueThe key of a bindingPSQueueThe priority of a bindingPSQueueO(1)# The number of bindings in a queue.PSQueueO(1) True if the queue is empty.PSQueueO(log n) The priority of a given key, or Nothing if the key is not bound.PSQueue$O(1) Build a queue with one binding.PSQueueO(log n)! Insert a binding into the queue.PSQueueO(log n), Insert a binding with a combining function.PSQueueO(log n), Insert a binding with a combining function.PSQueueO(log n)! Remove a binding from the queue.PSQueueO(log n) Adjust the priority of a key.PSQueueO(log n) Adjust the priority of a key.PSQueueO(log n) The expression ( update f k q) updates the priority p bound k (if it is in the queue). If (f p) is Q%, the binding is deleted. If it is (R z ), the key k is bound to the new priority z.PSQueueO(log n). The expression (updateWithKey f k q) updates the priority p bound k (if it is in the queue). If (f k p) is Q%, the binding is deleted. If it is (R z ), the key k is bound to the new priority z.PSQueueO(log n). The expression ( f k q) alters the priority p bound to kÜ, or absence thereof. alter can be used to insert, delete, or update a priority in a queue.PSQueueO(n) The keys of a priority queuePSQueue O(n log n)' Build a queue from a list of bindings. PSQueueO(n)€ Build a queue from a list of bindings in order of ascending keys. The precondition that the keys are ascending is not checked.!PSQueueO(n)’ Build a queue from a list of distinct bindings in order of ascending keys. The precondition that keys are distinct and ascending is not checked.#PSQueueO(n) Convert a queue to a list.$PSQueueO(n)6 Convert a queue to a list in ascending order of keys.&PSQueueO(n)7 Convert a queue to a list in descending order of keys.(PSQueueO(1)& The binding with the lowest priority.)PSQueueO(log n)- Remove the binding with the lowest priority.*PSQueueO(log n)ã Retrieve the binding with the least priority, and the rest of the queue stripped of that binding.,PSQueueO(r(log n - log r)  atMost p q" is a list of all the bindings in q with priority less than p+, in order of ascending keys. Effectively, 4 atMost p' q = filter (\(k:->p) -> p<=p') . toList .PSQueueO(r(log n - log r)) atMostRange p (l,u) q# is a list of all the bindings in q with a priority less than p and a key in the range (l,u) inclusive. Effectively, Á atMostRange p' (l,u) q = filter (\(k:->p) -> l<=k && k<=u ) . , p' 1PSQueue8Right fold over the bindings in the queue, in key order.2PSQueue7Left fold over the bindings in the queue, in key order.Ë  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJË   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ 0S5Safeo  !#$&()*,.12  #$& !()*,.12Ô      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVTUWXÙPSQueue-1.1.1-inplaceData.PSQueue.Internal Data.PSQueueTourViewNullSinglePlayLTreeStartLLoserRLoserSizePSQVoidWinnerBinding:->keypriosizenulllookupempty singletoninsert insertWith insertWithKeydeleteadjust adjustWithKeyupdate updateWithKeyalterkeysfromList fromAscListfromDistinctAscListfoldmtoList toAscList toAscLists toDescList toDescListsfindMin deleteMinminView secondBestatMostatMosts atMostRange atMostRangesinrangefoldrfoldlsize'leftrightmaxKeylloserrloseromegalbalancerbalance lbalanceLeft lbalanceRight rbalanceLeft rbalanceRight lsingleLeft rsingleLeft lsingleRight rsingleRight ldoubleLeft ldoubleRight rdoubleLeft rdoubleRightplay unsafePlaytourView $fShowPSQ $fShowSequ $fEqBinding $fOrdBinding $fShowBinding $fReadBindingbase GHC.MaybeNothingJust<+>