úÎ@Z=ü'      !"#$%&#A newtype used entirely to provide ' and ( instances for s. portable provisionalhenry@elsie.org.uk;A typeclass and an implementation for double-ended queues. portable provisionalhenry@elsie.org.uk)An implementation of Banker')s Dequeues, as described in Chris Okasaki's < Purely Functional Data Structures. The functions for the  < instance have the following complexities (where n is the  of the  queue):   : O(1)  : O(1)  : O(1)   : O(n)   : O(n)   : O(1) amortised   : O(1) amortised   : O(1) amortised  : O(1) amortised  : O(n) )%A typeclass for double-ended queues. Generates an empty queue. Returns * if this queue is empty. .Returns the number of elements in this queue. ,Returns the item on the front of the queue. *Returns the item on the end of the queue. DReturns the first n items from the front of the queue, in the order  they would be popped. FReturns the last n items from the end of the queue, in the order they  would be popped. ,Pushes an item onto the front of the queue. *Pops an item from the front of the queue. +Pushes an item onto the back of the queue. )Pops an item from the back of the queue. Converts a list into a queue. Support to make generating ( instances for s easier. Use as  follows:   / instance Show a => Show (MyDequeue a) where  show q = showDequeue q The resulting (# instance will be portable between Deqeue instances, / and will not expose the details of how your  instance is  constructed. Support to make generating ' instances for s easier. Use as  follows:   / instance Read a => Read (MyDequeue a) where / readsPrec i = readDequeue $ readsPrec i The resulting '# instance will be portable between Deqeue instances, / and will not expose the details of how your  instance is  constructed. >Validates that if you push, then pop, the front of the queue,  you get the same queue. =Validates that if you push, then pop, the back of the queue,  you get the same queue. Validates that  returns the last  pushFront' d element. Validates that  returns the last  pushBack' d element. Validates that the last n, pushed elements are returned by takeFront. Validates that the last n+ pushed elements are returned by takeBack. FValidates that the length of a queue is the same as the length of the " list generated from the queue. 2Validates that fromList . toList is the identity. +1The maximum number of times longer one half of a  is * permitted to be relative to the other. ,CChecks to see if the queue is too far out of balance. If it is, it  rebalances it. 5Validates that if you push, then pop, the front of a  BankersQueue,  you get the same queue. 4Validates that if you push, then pop, the back of a ,  you get the same queue. Validates that  returns the last  pushFront' d element. Validates that  returns the last  pushBack' d element. Validates that the last n, pushed elements are returned by takeFront. Validates that the last n+ pushed elements are returned by takeBack. Validates that the length of a  is the same as the length ) of the list generated from the queue. !7Validates that fromList . toList is the identity for a . -"Validates that a # remains balanced despite repeated  pushes to the front. #Validates that a # remains balanced despite repeated  pushes to the back. $Validates that a # remains balanced despite repeated  pops from the front. %Validates that a # remains balanced despite repeated  pops from the back. &Validates that a & has read and show instances that are  the inverse of each other. %  !"#$%&%  !"#$%&%    !"#$%&.      !"#$%&'()*(+,-./0123 dequeue-0.1.5Data.Dequeue.Show Data.DequeueDequeueBankersDequeueemptynulllengthfirstlast takeFronttakeBack pushFrontpopFrontpushBackpopBackfromList showDequeue readDequeueprop_pushpop_frontprop_pushpop_backprop_push_frontprop_push_backprop_takeFront prop_takeBackprop_length_toListprop_fromList_toListprop_pushpop_front_bqprop_pushpop_back_bqprop_push_front_bqprop_push_back_bqprop_takeFront_bqprop_takeBack_bqprop_length_toList_bqprop_fromList_toList_bqprop_push_front_bq_balanceprop_push_back_bq_balanceprop_pop_front_bq_balanceprop_pop_back_bq_balanceprop_read_show_bqbaseGHC.ReadReadGHC.ShowShowghc-primGHC.BoolTrue bqBalancecheckbalanced