All concrete implementations of Change must also implement this. However, the public API must never expose this implementation, because undo and redo must only be called by History.
When typing, lots of Change objects will be created. Undoing / redoing each character isn't what the user expects. So instead, Changes have the option to merge.