2v      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred Safe-Inferred%JA specialized type intended to organize the return of extract-min queries K from a binomial forest. We walk all the way through the forest, and then  walk backwards.  Extract rk a' is the result type of an extract-min 4 operation that has walked as far backwards of rank rk -- that is, it  has visited every root of rank >= rk. The interpretation of %Extract minKey minVal children forest is  minKey= is the key of the minimum root visited so far. It may have  any rank >= rk-. We will denote the root corresponding to  minKey as minRoot.  minVal is the value corresponding to minKey.  children is those children of minRoot which have not yet been @ merged with the rest of the forest. Specifically, these are  the children with rank < rk.  forest: is an accumulating parameter that maintains the partial 1 reconstruction of the binomial forest without minRoot . It is ( the union of all old roots with rank >= rk (except minRoot), # with the set of all children of minRoot with rank >= rk.  Note that forest+ is lazy, so if we discover a smaller key  than minKey later, we haven't wasted significant work. &A priority queue where values of type a! are annotated with keys of type k. = The queue supports extracting the element with minimum key. O(1)%. Returns the empty priority queue. O(1)+. Checks if this priority queue is empty. O(1),. Returns the size of this priority queue. O(1)*. Constructs a singleton priority queue.  Amortized O(1) , worst-case O(log n) . Inserts 3 an element with the specified key into the queue. >Internal helper method, using a specific comparator function.  Amortized O(log(min(n1, n2))) , worst-case O(log(max(n1, n2))). Returns the union  of the two specified queues. RTakes the union of the two specified queues, using the given comparison function. O(1)F. The minimal (key, element) in the queue, if the queue is nonempty. O(1)M. Alter the value at the minimum key. If the queue is empty, does nothing. O(log n) . (Actually O(1) if there'6s no deletion.) Update the value at the minimum key. & If the queue is empty, does nothing. O(log n)T. Retrieves the minimal (key, value) pair of the map, and the map stripped of that  element, or  if passed an empty map. O(n)0. Map a function over all values in the queue. O(n).   f q == mapKeys f q, but only works when f is strictly  monotonic.  The precondition is not checked., This function has better performance than  mapKeys. O(n). Map values and collect the  results. O(n). Map values and separate the  and  results.  O(n log n)3. Fold the keys and values in the map, such that   f z q ==  ( f) z ( toAscList q). =If you do not care about the traversal order, consider using .  O(n log n)3. Fold the keys and values in the map, such that   f z q ==   ( . f) z ( toAscList q). =If you do not care about the traversal order, consider using . Equivalent to ', save the assumption that this key is <=  every other key in the map.  The precondition is not checked. O(1)8. Returns a binomial tree of rank zero containing this  key and value. O(1);. Takes the union of two binomial trees of the same rank. cTakes the union of two binomial forests, starting at the same rank. Analogous to binary addition. _Takes the union of two binomial forests, starting at the same rank, with an additional tree. = Analogous to binary addition when a digit has been carried. UInserts a binomial tree into a binomial forest. Analogous to binary incrementation. TInserts a binomial tree into a binomial forest. Assumes that the root of this tree S is less than all other roots. Analogous to binary incrementation. Equivalent to   (  _ _ -> True). BWalks backward from the biggest key in the forest, as far as rank rk. 7 Returns its progress. Each successive application of  extractBin takes  amortized O(1)/ time, so applying it from the beginning takes O(log n) time. ,Utility function for mapping over a forest. Utility function for mapping a  function over a forest.  Utility function for mapping an  function over a forest. O(n)S. An unordered right fold over the elements of the queue, in no particular order. O(n)R. An unordered left fold over the elements of the queue, in no particular order. +Unordered right fold on a binomial forest. *Unordered left fold on a binomial forest. >Maps a monotonic function over the keys in a binomial forest. O(log n). Analogous to deepseq in the deepseq: package, but only forces the spine of the binomial heap. J      $ >        Safe-Inferred&A priority queue where values of type a! are annotated with keys of type k. = The queue supports extracting the element with maximum key.    Safe-Inferred !JA specialized type intended to organize the return of extract-min queries K from a binomial forest. We walk all the way through the forest, and then  walk backwards.  Extract rk a' is the result type of an extract-min 4 operation that has walked as far backwards of rank rk -- that is, it  has visited every root of rank >= rk. The interpretation of Extract minKey children forest is  minKey= is the key of the minimum root visited so far. It may have  any rank >= rk-. We will denote the root corresponding to  minKey as minRoot.  children is those children of minRoot which have not yet been @ merged with the rest of the forest. Specifically, these are  the children with rank < rk.  forest: is an accumulating parameter that maintains the partial 1 reconstruction of the binomial forest without minRoot . It is ( the union of all old roots with rank >= rk (except minRoot), # with the set of all children of minRoot with rank >= rk.  Note that forest+ is lazy, so if we discover a smaller key  than minKey later, we haven't wasted significant work. "&Type alias for a comparison function. #%Type corresponding to the Zero rank. $If |rk| corresponds to rank k, then |$ rk| corresponds to rank k+1. 'A priority queue with elements of type a,. Supports extracting the minimum element. O(1). The empty priority queue. O(1)%. Is this the empty priority queue? O(1)(. The number of elements in the queue. DReturns the minimum element of the queue, if the queue is nonempty. URetrieves the minimum element of the queue, and the queue stripped of that element,  or  if passed an empty queue. O(1)5. Construct a priority queue with a single element.  Amortized O(1) , worst-case O(log n)0. Insert an element into the priority queue.  Amortized O(log (min(n,m))) , worst-case O(log (max (n,m)))*. Take the union of two priority queues. O(n) . Map elements and collect the  results. !O(n)!. Map elements and separate the  and  results. %O(n)y. Assumes that the function it is given is monotonic, and applies this function to every element of the priority queue,  as in &*. If it is not, the result is undefined. " O(n log n)Q. Performs a right-fold on the elements of a priority queue in ascending order. 'Equivalent to foldr f z (unfoldr suc s0). # O(n log n)P. Performs a left-fold on the elements of a priority queue in ascending order. (foldlUnfold f z suc s0 is equivalent to foldl f z (unfoldr suc s0). )cTakes a size and a binomial forest and produces a priority queue with a distinguished global root. *BWalks backward from the biggest key in the forest, as far as rank rk. 7 Returns its progress. Each successive application of  extractBin takes  amortized O(1)/ time, so applying it from the beginning takes O(log n) time. +&Constructs a binomial tree of rank 0. , insertMin t f assumes that the root of t compares as less than  every other root in f, and merges accordingly. -,Given two binomial forests starting at rank rk, takes their union. 4 Each successive application of this function costs O(1), so applying it  from the beginning costs O(log n). .PMerges two binomial forests with another tree. If we are thinking of the trees Q in the binomial forest as binary digits, this corresponds to a carry operation. " Each call to this function takes O(1) time, so in total, it costs O(log n). /CMerges a binomial tree into a binomial forest. If we are thinking H of the trees in the binomial forest as binary digits, this corresponds / to adding a power of 2. This costs amortized O(1) time. 0BThe carrying operation: takes two binomial heaps of the same rank k  and returns one of rank k+1 . Takes O(1) time. $O(n)-. Unordered right fold on a priority queue. %O(n),. Unordered left fold on a priority queue. &(Forces the spine of the priority queue. '=Constructs a priority queue out of the keys of the specified . O123456!7"#8$9:;<=>?@ABCDE !%"'#(FG)HI*JK+L,-./0M$%&N'OPQRSTUVWXYZ[\]^_!"#8$9:;<=>?@AB !%"#L$%&'C123465!7"#8$9:;<?>=@BACDE !%"'#(FG)HI*JK+L,-./0M$%&N'OPQRSTUVWXYZ[\]^_portable experimentallibraries@haskell.orgNone(O(1)D. Returns the minimum element. Throws an error on an empty queue. )O(log n)F. Deletes the minimum element. If the queue is empty, does nothing. *O(log n)E. Extracts the minimum element. Throws an error on an empty queue. +=Takes the union of a list of priority queues. Equivalent to `  . , O(k log n)1. Index (subscript) operator, starting from 0.  queue !! k returns the (k+1) th smallest & element in the queue. Equivalent to toAscList queue !! k. --, applied to a predicate p and a queue queue, returns the $ longest prefix (possibly empty) of queue of elements that satisfy p. a=Equivalent to Data.List.takeWhile, but is a better producer. .. p queue# returns the queue remaining after - p queue. //, applied to a predicate p and a queue queue, returns a tuple where 5 first element is longest prefix (possibly empty) of queue of elements that  satisfy p3 and second element is the remainder of the queue. 00, applied to a predicate p and a queue queue, returns a tuple where 5 first element is longest prefix (possibly empty) of queue of elements that  do not satisfy p3 and second element is the remainder of the queue. 1 O(k log n). 1 k, applied to a queue queue!, returns a list of the smallest k elements of queue,  or all elements of queue itself if k >=  queue. 2 O(k log n). 2 k, applied to a queue queue , returns queue with the smallest k elements deleted,  or an empty queue if  k >= size queue. 3 O(k log n). Equivalent to (1 k queue, 2 k queue). 4O(n)6. Returns the queue with all elements not satisfying p removed. 5O(n)I. Returns a pair where the first queue contains all elements satisfying p, and the second queue & contains all elements not satisfying p. 6O(n)U. Creates a new priority queue containing the images of the elements of this queue.  Equivalent to < .    f . toList. 7 O(n log n)C. Extracts the elements of the priority queue in ascending order. 8 O(n log n)D. Extracts the elements of the priority queue in descending order. 9O(n)Q. Returns the elements of the priority queue in ascending order. Equivalent to 7. ;If the order of the elements is irrelevant, consider using A. : O(n log n)R. Performs a right-fold on the elements of a priority queue in descending order.  (foldrDesc f z q == foldlAsc (flip f) z q. ; O(n log n)Q. Performs a left-fold on the elements of a priority queue in descending order.  (foldlDesc f z q == foldrAsc (flip f) z q. <O(n)7. Constructs a priority queue from an unordered list. =O(n)8. Constructs a priority queue from an ascending list. Warning#: Does not check the precondition. >O(n)9. Constructs a priority queue from an descending list. Warning#: Does not check the precondition. ?zMaps a function over the elements of the queue, ignoring order. This function is only safe if the function is monotonic.  This function does not check the precondition. @Equivalent to A. A;Returns the elements of the queue, in no particular order. ()*+,-a./0123456789:;<=>?@Abcd+ !"#$%&'()*+,-./0123456789:;<=>?@A+()*+,123-./045 !6"#:;978<=>?$%@A'&()*+,-a./0123456789:;<=>?@Abcdportable experimentallibraries@haskell.orgNone+B'A priority queue with elements of type a.. Supports extracting the maximum element. ! Implemented as a wrapper around . CO(1). The empty priority queue. DO(1)%. Is this the empty priority queue? EO(1)(. The number of elements in the queue. FO(1)Q. Returns the maximum element of the queue. Throws an error on an empty queue. GO(1)<. The top (maximum) element of the queue, if there is one. HO(log n)N. Deletes the maximum element of the queue. Does nothing on an empty queue. IO(log n)R. Extracts the maximum element of the queue. Throws an error on an empty queue. JO(log n)G. Extract the top (maximum) element of the sequence, if there is one. eO(log n)F. Delete the top (maximum) element of the sequence, if there is one. KO(1)5. Construct a priority queue with a single element. LO(1)0. Insert an element into the priority queue. MO(log (min(n1,n2)))*. Take the union of two priority queues. N=Takes the union of a list of priority queues. Equivalent to ` M C. O O(k log n). Returns the (k+1)!th largest element of the queue. P O(k log n). Returns the list of the k8 largest elements of the queue, in descending order, or  all elements of the queue, if k >= n. Q O(k log n). Returns the queue with the k1 largest elements deleted, or the empty queue if k >= n. R O(k log n). Equivalent to (take k queue, drop k queue). SS, applied to a predicate p and a queue queue, returns the $ longest prefix (possibly empty) of queue of elements that satisfy p. TT p queue# returns the queue remaining after S p queue. UU, applied to a predicate p and a queue queue, returns a tuple where 5 first element is longest prefix (possibly empty) of queue of elements that  satisfy p3 and second element is the remainder of the queue. VV, applied to a predicate p and a queue queue, returns a tuple where 5 first element is longest prefix (possibly empty) of queue of elements that  do not satisfy p3 and second element is the remainder of the queue. WO(n)B. Returns a queue of those elements which satisfy the predicate. XO(n)f. Returns a pair of queues, where the left queue contains those elements that satisfy the predicate, 1 and the right queue contains those that do not. YO(n)D. Maps a function over the elements of the queue, and collects the  values. ZO(n)E. Maps a function over the elements of the queue, and separates the  and  values. [O(n)y. Assumes that the function it is given is monotonic, and applies this function to every element of the priority queue.  Does not check the precondition. \O(n)-. Unordered right fold on a priority queue. ]O(n),. Unordered left fold on a priority queue. ^Equivalent to _. _O(n)Q. Returns a list of the elements of the priority queue, in no particular order. ` O(n log n)Q. Performs a right-fold on the elements of a priority queue in ascending order.  ` f z q == c (flip f) z q. a O(n log n)Q. Performs a left-fold on the elements of a priority queue in descending order.  a f z q == b (flip f) z q. b O(n log n)R. Performs a right-fold on the elements of a priority queue in descending order. c O(n log n)Q. Performs a left-fold on the elements of a priority queue in descending order. d O(n log n)C. Extracts the elements of the priority queue in ascending order. e O(n log n)D. Extracts the elements of the priority queue in descending order. fO(n)F. Returns the elements of the priority queue in no particular order. gO(n)8. Constructs a priority queue from an ascending list. Warning$: Does not check the precondition. hO(n)8. Constructs a priority queue from a descending list. Warning#: Does not check the precondition. i O(n log n)7. Constructs a priority queue from an unordered list. jO(n)2. Constructs a priority queue from the keys of a . kO(log n)!. Forces the spine of the heap. 0BfCDEFGHIJeKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkghij+BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk+BCDEFGHIJKLMNOPQRSTUVWXYZ`abcfdeigh[\]^_jk/BfCDEFGHIJeKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkghijportable experimentallibraries@haskell.orgNone+l The union of a list of queues: (l == k  ). mO(1)3. The minimal (key, element) in the queue. Calls l if empty. nO(log n)L. Deletes the minimal (key, element) in the queue. Returns an empty queue  if the queue is empty. oO(log n)<. Delete and find the element with the minimum key. Calls l if empty. pO(1)M. Alter the value at the minimum key. If the queue is empty, does nothing. qO(log n) . (Actually O(1) if there'6s no deletion.) Update the value at the minimum key. & If the queue is empty, does nothing. rO(log n)S. Retrieves the value associated with the minimal key of the queue, and the queue  stripped of that element, or  if passed an empty queue. sO(n)0. Map a function over all values in the queue. tO(n). t f q# is the queue obtained by applying f to each key of q. u O(n log n)B. Traverses the elements of the queue in ascending order by key.  (u f q ==   $ m ( f) ( q)) If you do not care about the order" of the traversal, consider using . vO(n). Map values and collect the  results. wO(n). Map values and separate the  and  results. xO(n)1. Filter all values that satisfy the predicate. yO(n)1. Filter all values that satisfy the predicate. zO(n)X. Partition the queue according to a predicate. The first queue contains all elements O which satisfy the predicate, the second all elements that fail the predicate. {O(n)X. Partition the queue according to a predicate. The first queue contains all elements O which satisfy the predicate, the second all elements that fail the predicate. | O(k log n). Takes the first k/ (key, value) pairs in the queue, or the first n if k >= n.  (| k q == n k ( q)) } O(k log n). Deletes the first k? (key, value) pairs in the queue, or returns an empty queue if k >= n. ~ O(k log n). Equivalent to (| k q, } k q). HTakes the longest possible prefix of elements satisfying the predicate.  ( p q == o (p . p) ( q)) HTakes the longest possible prefix of elements satisfying the predicate.  ( p q == o (uncurry p) ( q)) JRemoves the longest possible prefix of elements satisfying the predicate. JRemoves the longest possible prefix of elements satisfying the predicate. Equivalent to ( p q,  p q). Equivalent to  (q . p). Equivalent to ( p q,  p q). Equivalent to  ( k a -> q (p k a)) q. O(n)?. Build a priority queue from the list of (key, value) pairs. O(n)I. Build a priority queue from an ascending list of (key, value) pairs.  The precondition is not checked. O(n)I. Build a priority queue from a descending list of (key, value) pairs.  The precondition is not checked.  O(n log n)4. Return all keys of the queue in ascending order.  O(n log n)?. Return all elements of the queue in ascending order by key.  O(n log n)<. Return all (key, value) pairs in ascending order by key.  O(n log n)=. Return all (key, value) pairs in descending order by key.  O(n log n). Equivalent to . 5If the traversal order is irrelevant, consider using .  O(n log n). Equivalent to . O(n)8. Return all keys of the queue in no particular order. O(n)<. Return all elements of the queue in no particular order. O(n). Equivalent to . O(n)G. Returns all (key, value) pairs in the queue in no particular order. O(n)S. An unordered right fold over the elements of the queue, in no particular order. O(n)R. An unordered left fold over the elements of the queue, in no particular order. O(n)I. An unordered traversal over a priority queue, in no particular order. V While there is no guarantee in which order the elements are traversed, the resulting ) priority queue will be perfectly valid. 5rstulmnopqrstuvwxyz{|}~vwxyz{@ lmnopqrstuvwxyz{|}~@lmnop q r s t u|}~xyz{vw5rstulmnopqrstuvwxyz{|}~vwxyz{portable experimentallibraries@haskell.orgNone?O(1)%. Returns the empty priority queue. O(1)*. Constructs a singleton priority queue.  Amortized O(1) , worst-case O(log n) . Inserts 3 an element with the specified key into the queue.  Amortized O(log(min(n1, n2))) , worst-case O(log(max(n1, n2))). Returns the union  of the two specified queues.  The union of a list of queues: ( == k  ). O(1)+. Checks if this priority queue is empty. O(1),. Returns the size of this priority queue. O(1)3. The maximal (key, element) in the queue. Calls l if empty. O(1)F. The maximal (key, element) in the queue, if the queue is nonempty. O(log n)<. Delete and find the element with the maximum key. Calls l if empty. O(log n)<. Delete and find the element with the maximum key. Calls l if empty. O(1)M. Alter the value at the maximum key. If the queue is empty, does nothing. O(1)M. Alter the value at the maximum key. If the queue is empty, does nothing. O(log n) . (Actually O(1) if there'6s no deletion.) Update the value at the maximum key. & If the queue is empty, does nothing. O(log n) . (Actually O(1) if there'6s no deletion.) Update the value at the maximum key. & If the queue is empty, does nothing. O(log n)S. Retrieves the value associated with the maximum key of the queue, and the queue  stripped of that element, or  if passed an empty queue. O(log n)T. Retrieves the maximal (key, value) pair of the map, and the map stripped of that  element, or  if passed an empty map. O(n)0. Map a function over all values in the queue. O(n)0. Map a function over all values in the queue. O(n)0. Map a function over all values in the queue. O(n).  f q ==  f q, but only works when f is strictly  monotonic.  The precondition is not checked., This function has better performance than  .  O(n log n)3. Fold the keys and values in the map, such that   f z q == | ( f) z ( q). =If you do not care about the traversal order, consider using .  O(n log n)3. Fold the keys and values in the map, such that   f z q == k ( . f) z ( q). =If you do not care about the traversal order, consider using .  O(n log n)C. Traverses the elements of the queue in descending order by key.  ( f q ==   $ m ( f) ( q)) If you do not care about the order" of the traversal, consider using .  O(k log n). Takes the first k/ (key, value) pairs in the queue, or the first n if k >= n.  ( k q == n k ( q))  O(k log n). Deletes the first k? (key, value) pairs in the queue, or returns an empty queue if k >= n.  O(k log n). Equivalent to ( k q,  k q). HTakes the longest possible prefix of elements satisfying the predicate.  ( p q == o (p . p) ( q)) HTakes the longest possible prefix of elements satisfying the predicate.  ( p q == o (uncurry p) ( q)) JRemoves the longest possible prefix of elements satisfying the predicate. JRemoves the longest possible prefix of elements satisfying the predicate. Equivalent to ( p q,  p q). Equivalent to  (q . p). Equivalent to  ( k a -> q (p k a)) q. Equivalent to  ( k a -> q (p k a)) q. O(n)1. Filter all values that satisfy the predicate. O(n)1. Filter all values that satisfy the predicate. O(n)X. Partition the queue according to a predicate. The first queue contains all elements O which satisfy the predicate, the second all elements that fail the predicate. O(n)X. Partition the queue according to a predicate. The first queue contains all elements O which satisfy the predicate, the second all elements that fail the predicate. O(n). Map values and collect the  results. O(n). Map values and collect the  results. O(n). Map values and separate the  and  results. O(n). Map values and separate the  and  results. O(n)?. Build a priority queue from the list of (key, value) pairs. O(n)I. Build a priority queue from an ascending list of (key, value) pairs.  The precondition is not checked. O(n)I. Build a priority queue from a descending list of (key, value) pairs.  The precondition is not checked.  O(n log n)4. Return all keys of the queue in ascending order.  O(n log n)?. Return all elements of the queue in ascending order by key.  O(n log n). Equivalent to .  O(n log n)<. Return all (key, value) pairs in ascending order by key.  O(n log n)=. Return all (key, value) pairs in descending order by key.  O(n log n). Equivalent to . 5If the traversal order is irrelevant, consider using . O(n)S. An unordered right fold over the elements of the queue, in no particular order. O(n)S. An unordered right fold over the elements of the queue, in no particular order. O(n)R. An unordered left fold over the elements of the queue, in no particular order. O(n)R. An unordered left fold over the elements of the queue, in no particular order. O(n)I. An unordered traversal over a priority queue, in no particular order. V While there is no guarantee in which order the elements are traversed, the resulting ) priority queue will be perfectly valid. O(n)I. An unordered traversal over a priority queue, in no particular order. V While there is no guarantee in which order the elements are traversed, the resulting ) priority queue will be perfectly valid. O(n)8. Return all keys of the queue in no particular order. O(n)<. Return all elements of the queue in no particular order. O(n). Equivalent to . O(n)G. Returns all (key, value) pairs in the queue in no particular order. O(log n). Analogous to deepseq in the deepseq: package, but only forces the spine of the binomial heap. F}~@@F}~  !"#$ % &     '    ( ) * + , - $ ./0123456789:;< =>?@ABCDEFGHIJKLM2389:4567;<()E,-FG*+@A=>?CDB.$2/01NO' PQ();R<S89:4T5U67VWBCDXY=>?Z[F\G,-]2IJKL^_`aMb P Q89:4T5U67VW;R<S()BCDXYZ=>?,!-"]#[F\G$ccdefghijkjlmnmopqrstuvwxyz{j|}m~g    g     s r w      g          &  h i E   84p pqueue-1.2.1Data.PQueue.MaxData.PQueue.Prio.MinData.PQueue.Prio.MaxData.PQueue.MinControl.Applicative.IdentityData.PQueue.Prio.InternalsListfoldrfoldlData.PQueue.Prio.Max.InternalsData.PQueue.Internals Data.ListmapbaseGHC.Base MinPQueueemptynullsize singletoninsertuniongetMinadjustMinWithKeyupdateMinWithKeyminViewWithKey mapWithKeymapKeysMonotonicmapMaybeWithKeymapEitherWithKey foldrWithKey foldlWithKey foldrWithKeyU foldlWithKeyUtraverseWithKeyUseqSpine MaxPQueueMinQueueminViewmapMaybe mapEitherfoldrAscfoldlAscfoldrUfoldlU keysQueuefindMin deleteMin deleteFindMinunions!! takeWhile dropWhilespanbreaktakedropsplitAtfilter partition toAscList toDescListtoList foldrDesc foldlDescfromList fromAscList fromDescListmapUelemsUtoListUMaxQueuefindMaxgetMax deleteMax deleteFindMaxmaxView adjustMin updateMinmapKeystraverseWithKey filterWithKeypartitionWithKeytakeWhileWithKeydropWhileWithKey spanWithKey breakWithKeykeyselemsassocskeysUassocsU traverseU adjustMaxadjustMaxWithKey updateMaxupdateMaxWithKeymaxViewWithKeyIdentity runIdentity$fApplicativeIdentity$fFunctorIdentityExtractinsert'union' Data.MaybeNothingJust Data.EitherLeftRight Data.Tupleuncurry insertMintipmeld mergeForest carryForestincrincrMin extractForest mapForest mapMaybeFMaybe mapEitherFEitherfoldrWithKeyF_foldlWithKeyF_ mapKeysMonoFNFRankrnfRkMExtractYesNoLEqSuccZero BinomTree BinomHeap BinomForestConsSkipNilMinPQEmpty.:first'second'uncurry'<> extractHeap incrExtracttraverseForest$fNFDataMinPQueue$fNFDataBinomForest$fNFDataBinomTree $fNFRankSucc $fNFRankZero$fOrdMinPQueue $fEqMinPQueue$fDataMinPQueueMaxPQDownunDown$fTraversableDown$fFoldableDown $fFunctorDown $fOrdDown $fNFDataDown$fNFDataMaxPQueue mapMonotonicfmap foldrUnfold foldlUnfold extractBinmergecarryjoinBin Partition queueDataType emptyConstr consConstr incrExtract' mapMaybeQueuemapEitherQueue insertMinQ seqSpineFkeysF$fNFDataMinQueue$fFoldableBinomForest$fFoldableBinomTree$fFoldableSucc$fFoldableZero$fFunctorBinomForest$fFunctorBinomTree $fFunctorSucc $fFunctorZero $fOrdMinQueue $fEqMinQueue$fDataMinQueue Data.Foldable foldWhileFB$fMonoidMinQueue$fReadMinQueue$fShowMinQueuedeleteMaxQ$fMonoidMaxQueue$fReadMaxQueue$fShowMaxQueue$fNFDataMaxQueueGHC.ListGHC.ErrerrorData.Traversabletraversesndghc-prim GHC.Classesnot$fTraversableMinPQueue$fFoldableMinPQueue$fFunctorMinPQueue$fReadMinPQueue$fShowMinPQueue$fMonoidMinPQueue$fTraversableMaxPQueue$fFoldableMaxPQueue$fFunctorMaxPQueue$fReadMaxPQueue$fShowMaxPQueue