Module 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).

Ranked types

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

Priority heaps

module MakeRanked (Rank : RankedType) : sig ... end

Ordered priority heaps

module type OrderedTypeDefault = sig ... end
module MakeOrdered (V : OrderedTypeDefault) : sig ... end