@TWiStErRob @fentoyal I have the same doubt about monotonicity: in your MonoQueue, if you push 5,4,3,2,1 and then check for max and pop you'll get 5,4,3,2,1. How is this monotone (increasing)?

In other words, what is the internal invariant of your data structure? I'm confused by the fact that if you had something like <3,1>,<-1,1> you'd only delete the -1 when pushing a new value bigger than -1.