Immutable functional heaps and priority queues for common lisp.