let l, r = left i, right i
// Is the left child greater than the parent?
let mutable max = if l < a.Count && kComparer.Compare(a.[l].key, a.[i].key) > 0 then l else i
// Is the right child greater than the parent and the left child?
let l, r = left i, right i
// Is the left child greater than the parent?
let mutable max = if l < a.Count && kComparer.Compare(a.[l].key, a.[i].key) > 0 then l else i
// Is the right child greater than the parent and the left child?