Datastructurally bootstrapped priority queue per Optimal purely functional
priority queues (Brodal, G. S., & Okasaki, C. (1996).)
Reduces the time of every operation except `deleteMin` to O(1), with
`deleteMin` remaining O(log n)
This internally uses overridden Ord and Eq implementations, the Ord
implementation should always be correct for the application, but the Eq
implementation only compares on the minimum value of a queue, and may break
queue implementations that rely on proper equality for some operations,
which does not include any of the implementations in this package.
Totality: not strictly positive
Visibility: export
Constructors:
Empty : Ord e => Ord (Bootstrap inner e) => Bootstrap inner e Single : Ord e => Ord (Bootstrap inner e) => e -> Bootstrap inner e Root : Ord e => Ord (Bootstrap inner e) => e -> inner (Bootstrap inner e) -> Bootstrap inner e
Hints:
Eq e => Eq (Bootstrap inner e) PriorityQueue inner => Ord e => Ord (Bootstrap inner e) PriorityQueue inner => PriorityQueue (Bootstrap inner)