H VNone;MThis only checks that the node type is the same and in the case of a Cons Pair checks that the underlying MutVar#s are pointer-equal. This suffices to check equality since each IORef is never used in multiple Pair values.XPush a new element onto the queue. Because the queue can grow, this always succeeds.Attempt to pop an element from the queue if one is available. tryPop will return semi-promptly (depending on contention), but will return  if the queue is empty.Create a new queue.PIs the queue currently empty? Beware that this can be a highly transient state.    None2=KSThis queue is not fully general, it covers only part of the configuration space:    lockfree-queue-0.2.3.1"Data.Concurrent.Queue.MichaelScott0Data.Concurrent.Queue.MichaelScott.DequeInstance LinkedQueuepushLtryPopRnewQnullQpairEqbase Data.MaybeNothingPairConsNullLQheadtail==# sameMutVar#checkInvariant$fDequeClassLinkedQueue,TFCo:R:DequeltrtSingleEndSingleEndbndsafeelt