Tail recursive implementation of Heap.Tail