úÎ!0….1&      !"#$%Safe-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)B 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 '%, the binding is deleted. If it is (( 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 '%, the binding is deleted. If it is (( 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)c 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, A atMostRange p' (l,u) q = filter (\(k:->p) -> l<=k && k<=u ) .  p' PSQueue8Right fold over the bindings in the queue, in key order.PSQueue7Left fold over the bindings in the queue, in key order.    0)5*      !"#$%&'()*+)*,-.&PSQueue-1.1.0.1-4AWdCkukY01Ev5bal8JE5L Data.PSQueuePSQBinding:->keypriosizenulllookupempty singletoninsert insertWithdeleteadjust adjustWithKeyupdate updateWithKeyalterkeysfromList fromAscListfromDistinctAscListtoList toAscList toDescListfindMin deleteMinminViewatMost atMostRangefoldrfoldl $fShowPSQ $fShowSequ $fEqBinding $fOrdBinding $fShowBinding $fReadBinding insertWithKeybase GHC.MaybeNothingJust<+>