In this diff of mine D77186 I introduce a bug in the replace operation, where I was failing fast by mistake.
Besides, a similar problem existed in the insert-after operation, where it was failing fast.
Finally, the remove operation was wrong, as it was not using the indices provided by the users.
I fixed those issues and added some tests account for cases with multiple elements in these requests.
sorting on reverse iterators causes some head-scratching. I think it would be simpler to just sort normally, and then iterate in reverse (for (int /*not auto*/ index: llvm::reverse(remove_indexes)) ...)