deleteRange(removeStart, removeEnd);
// step 6: compose then consume the insertion op:
DocOp atomicInsert;
try {
atomicInsert = Composer.compose(domOp.finish(), annotOp.finish());
hackConsume(Nindo.fromDocOp(atomicInsert, true));
} catch (OperationException e) {
// should never happen, we constructed composable ops
}
}