1),      !"#$ % & ' ( ) * +  ,-.,-.,-.     /01234 56789:;<=>?   @AB C    DEDEDE FGHIJKLMNOPQ HIJKLMNOP HIJKLJKLMNOPQA generic type class encapsulating a generic queuelike structure, that supports single-insertion and single-extraction; this abstraction includes priority queues, stacks, and FIFO queues. There are many minimal implementations, so each method lists the prerequisites for its default implementation. Most implementations will implement , ( and ) or , ( and ) or , and . JInserts a single element into the queue. The default implementation uses  and . JInserts several elements into the queue. The default implementation uses O. (In some cases, it may be advantageous to override this implementation with xs `` q = q ``  xs.) xAttempts to extract an element from the queue; if the queue is empty, returns Nothing. The default implementation uses  and . Gets the element that will next be extracted from the queue, if there is an element available. The default implementation uses . ^Deletes an element from the queue, if the queue is nonempty. The default implementation uses . <Constructs an empty queue. The default implementation uses . KConstructs a queue with a single element. The default implementation uses  and . ZConstructs a queue with all of the elements in the list. The default implementation uses  and . =Gets the size of the queue. The default implementation uses . ?Checks if the queue is empty. The default implementation uses . HExtracts every element from the queue. The default implementation uses . gExtracts every element from the queue, with no guarantees upon order. The default implementation uses . Merges two queues so that the contents of the second queue are inserted into the first queue in extraction order. The default implementation uses  and . Type that only orders on the key, ignoring the value completely; frequently useful in priority queues, so made available here.  RSTUV    !WXYZ[\]^!!!"_`a"""#bc### $A  type with &QueueKey (IntAssocQueue e) ~ e :-> Int. d%A  type with QueueKey IntQueue ~ Int. e$%%$$% (&fghijklmnopqrstuvwxyz{|}'()~&'()&'()&'() *+*++**+  *+ !"#$%&'() !"#$%&'() !"#$%&'()*+,-.//0123 4 5 6 7 8 9 : ; < = >?@AB)CDEFGHIJKLMNOOP Q RSTUVWXYZ[\]^_`abcdefghibcjkk3l m n d X o p q r s s t u v w x y z { | } ~  b : ; queuelike-1.0.0Data.MQueue.ClassData.MQueue.HeapData.MQueue.ChanQData.Queue.ClassData.Queue.PQueueData.Queue.SkewQueueData.Queue.StackData.Queue.QueueData.Queue.IntQueueData.Queue.SoftHeapData.MQueue.SyncQueueData.MQueue.MonadHelpersData.Queue.NumericData.Queue.QueueHelpers Data.MQueueData.Queue.Instances Data.QueueMQueue MQueueKeynewQueuepushpushAllpoppop_peekisEmptyHeapgetSizeChanQdupChanQ pipeChanQ QueuelikeQueueKeyinsert insertAllextractdeleteempty singletonfromListsizenulltoListtoList_mergemergeAll:->PQueue SkewQueueStackQueue IntAssocQueueIntQueueSoftHeapempty' singleton' fromList'SyncMQSyncQwithwhen_whileMHunHeapSTHeapSTHarr queryHeaponHeaponHeap_modSTRef modSTRef_ ensureSizeheapUp unsafePusherpusherheapDownpopperChItemStreamintLogceilLogIntAccIAHeapQMonoidQHQeltsheap endoMaybefusingorder fuseMerge fuseMergeMPQTreeTsingleflattenSQBTreeTrtreeMin_left_rightSStkmkQIAQIQrankrConstheads SHeapListSHeadsHeapmyIxsufMinSNodeSNckeyrk targetSizelistleftrighttoTreetoForestdrawHeap defaultRank fromEpsilonminWith orderPairWithisLeafsiftcombineconsHeadrkHeadmeldheadKey fixSufMins deleteMin withSyncQonSyncMQ