class PriorityQueueAsPushPop(wrapped : IPriorityQueue) : IPushPop { override fun pop() = wrapped.extract() override fun push(item : T) = wrapped.add(item) override val isEmpty get() = wrapped.isEmpty }