// for a type using the routines in this package.
// Any type that implements it may be used as a
// min-heap with the following invariants (established after
-// Init has been called or if the data is empty or sorted):
+// [Init] has been called or if the data is empty or sorted):
//
// !h.Less(j, i) for 0 <= i < h.Len() and 2*i+1 <= j <= 2*i+2 and j < h.Len()
//
-// Note that Push and Pop in this interface are for package heap's
+// Note that [Push] and [Pop] in this interface are for package heap's
// implementation to call. To add and remove things from the heap,
-// use heap.Push and heap.Pop.
+// use [heap.Push] and [heap.Pop].
type Interface interface {
sort.Interface
Push(x any) // add x as element Len()
// Pop removes and returns the minimum element (according to Less) from the heap.
// The complexity is O(log n) where n = h.Len().
-// Pop is equivalent to Remove(h, 0).
+// Pop is equivalent to [Remove](h, 0).
func Pop(h Interface) any {
n := h.Len() - 1
h.Swap(0, n)
// Fix re-establishes the heap ordering after the element at index i has changed its value.
// Changing the value of the element at index i and then calling Fix is equivalent to,
-// but less expensive than, calling Remove(h, i) followed by a Push of the new value.
+// but less expensive than, calling [Remove](h, i) followed by a Push of the new value.
// The complexity is O(log n) where n = h.Len().
func Fix(h Interface, i int) {
if !down(h, i, h.Len()) {