3$,N&      !"#$ %  &'(&'(&'(     )*+,-. /01234567       89:common prefix truncated suffix of xs truncated suffix of xs  split trie ;mPerforms partial matching of two labels and applies an appropriate function upon completing a partial match. <=>?89:;<=>?89:;<=>? @ABCDEFGHIJKLMNOPQRST@ABCDEFGHIJKLMNOP@ABCABCDEEFGHIJKLMNOP UVWXYZ[\]^WXYZ[\^WXYZ[YZ[\^ QA 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 , (peek and ) or , and +. (The absolute minimal implementation is , , , 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 peek 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 peek. 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.      _`ab cde   !fg"!"!"!" hijklmnopqrsjnojnotu#vwxyz{|}~### $%$%%$$% $% !"  !" !"#$%&'()*+,-../01234 5 6 7 8 9:;<=(>?@ABCDEFG H I J K 3 L M N O P Q R S T U V W X Y Z [ \ ] ^ _`ab`ac`ad`ae f g h i j k l m n opqrstku2vwxyz{|}~ss 5 6 queuelike-1.0.8Data.MQueue.ClassData.MQueue.HeapData.MQueue.ChanData.Queue.ClassData.Queue.PQueueData.Queue.StackData.Queue.QueueData.Queue.TrieQueueData.MQueue.SyncQueueData.MQueue.MonadHelpersData.Queue.TrieQueue.TrieLabelData.SemigroupData.Queue.QueueHelpersData.Queue.Fuse.PHeap Data.MQueueData.Queue.Instances Data.QueueMQueue MQueueKeynewQueuepushpushAllpoppop_peekisEmptyHeapgetSize blockingPopIQueueQueueKeyinsert insertAllextracttopdeleteempty singletonfromListsizenulltoListtoList_mergemergeAll:->PQueue drawQueueStackQueuecons TrieQueueSyncMQSyncQwithwhen_whileMHunHeapSTHeapSTHarr queryHeaponHeap_ modSTRef_ ensureSizeheapUp unsafePusherpusherheapDownpopperLabelTailSplitmerginguncons labelToList labelFromList Semigroupsappendsconcatsconcat_PointPtFusionEndo endoMaybe endoPointfusing'fuseCatfusing scatPoints' scatPointspJustpNothingbase Data.MonoidmconcatmappendmemptyMonoidIntAccIAHeapQMonoidQHQeltsheaporder fuseMerge unfoldListPQTreeTsingleSstkrotMergeMrg FusePHeapFPHPHeapPH extractSinglereplacemergePHmergePHs mergePHs_AccATQTriecatTrieconsTrie mergeTrie compactTrie mergeTriesfin extractTrie fromListTrie withSyncQonSyncMQ