protected static CNode rotateLeft (CNode n) {
		assert n != null : "n != null";
		assert !n.isLeaf && !n.right.isLeaf && n.right.color == RED :
		"rotateLeft a BLACK right node will break the tree balance";
	
		DOWN(n);
		CNode tempCNode = n.right;
		boolean tempColor = n.color;
		DOWN(tempCNode);
		n.right = tempCNode.left;
		n.color = tempCNode.color;
		UP(n);
		tempCNode.left = n;
		tempCNode.color = tempColor;
		UP(tempCNode);
		return tempCNode;
	}