AltErgoLib.Heap
Heaps.
This modules define intrusive priority heaps (i.e. priority heaps where the index of a given element in the map is stored on the element itself).
Elements that are put in a heap must implement the RankedType
interface. This requires providing a (loose) comparison function, and allows to get and set an `index` field on the element (to map back the element to its current position in the heap).
Note that this implies that each element can only be in a single heap at a time.
module type RankedType = sig ... end
module MakeRanked (Rank : RankedType) : sig ... end
module type OrderedTypeDefault = sig ... end
module MakeOrdered (V : OrderedTypeDefault) : sig ... end