(* Priority Queue of ELT this version stores (item,priority) pairs, like ("hi",2) or (15,0) it also makes the collection or items are any one priority stay in queue order We treat 0 as highest priority... the smaller the interger, the higher the priority new : --> PQUE insert : PQUE x ELT x int --> PQUE getv : PQUE --> ELT u err getp : PQUE --> nat u err delete : PQUE --> PQUE size : PQUE --> nat empty : PQUE --> boolean size(new) = 0 size(insert(Q,e,i)) = size(Q) + 1 empty(new) = true empty(insert(Q,e,i)) = false getv(new) = err getv(insert(Q,e,i)) = if (empty(Q)) then e else if (i