haskell
A /priority search queue/ efficiently supports the
opperations of both a search tree and a priority queue. A
'Binding' is a product of a key and a priority. Bindings
can be inserted, deleted, modified and queried in
logarithmic time, and the binding with the least priority
can be retrieved in constant time. A queue can be built
from a list of bindings, sorted by keys, in linear time.