Removing ranges from a selection
// msel is initialized elsewhere and is currently empty
msel.AddRange(100, 50); // selection: [100..150)
msel.RemoveRange(100, 10); // selection: [110..150)
msel.RemoveRange(0, 10); // selection: [110..150) - nothing changed
msel.RemoveRange(150, 20); // selection: [110..150) - nothing changed
msel.RemoveRange(120, 10); // selection: [110..120) U [130..150)