The edits, in the order they were added.
Whether the set has no edits.
The text the edits apply to.
Applies the edits, back to front, and returns the new text with a span map.
Replaces each of targets with text, checking all of them against each other and the
existing edits in one sorted pass, so a large batch (every reference to a renamed name)
costs O(n log n) rather than O(n²).
StaticFor
A set of edits to one text, kept as a value: every method returns a new set and leaves this one unchanged. Edits are made by node or span against the original text; overlapping edits are refused with an EditConflictError. Apply applies them back to front, so each edit's offsets stay those of the original text.