pkg/adt/interval_tree.go
func (ivt *IntervalTree) rotateLeft(x *intervalNode) {
	y := x.right
	x.right = y.left
	if y.left != nil {
		y.left.parent = x
	}
	x.updateMax()
	ivt.replaceParent(x, y)
	y.left = x
	y.updateMax()
}
func (ivt *IntervalTree) rotateLeft(x *intervalNode) {
	y := x.right
	x.right = y.left
	if y.left != nil {
		y.left.parent = x
	}
	x.updateMax()
	ivt.replaceParent(x, y)
	y.left = x
	y.updateMax()
}
func ( ivt * IntervalTree ) rotateLeft ( x * intervalNode ) { y := x . right x . right = y . left if y . left != nil { y . left . parent = x } x . updateMax ( ) ivt . replaceParent ( x , y ) y . left = x y . updateMax ( ) }
// rotateLeft moves x so it is left of its right child
rotateLeft moves x so it is left of its right child