TextPatch
Parameters
start
the start position of the replaced region, inclusive
end
the end position of the replaced region, exclusive
text
the replacement text. An empty string deletes the region, and a patch with start == end inserts at that position