static Node RightBalance(object key, object val, Node left, Node ins)
{
if (ins is Red && ins.Right is Red)
return MakeRed(ins.Key, ins.Val, MakeBlack(key, val, left, ins.Left), ins.Right.Blacken());
else if (ins is Red && ins.Left is Red)
return MakeRed(ins.Left.Key, ins.Left.Val,
MakeBlack(key, val, left, ins.Left.Left),
MakeBlack(ins.Key, ins.Val, ins.Left.Right, ins.Right));
else
return MakeBlack(key, val, left, ins);
}