signature PQueueSig = sig type Item type PQueue val empty : PQueue val isEmpty : PQueue -> bool val enq : PQueue * Item -> PQueue val deq : PQueue -> PQueue * Item end;