9. A non-transitory computer-readable storage medium having contents configured to cause a computing system to, in order to process textual input generated with a user input device: store the textual input in a first data structure contained in the address space of a first process; and synchronize contents of the first data structure to a second data structure contained in the address space of a second process distinct from the first process, an application executing in the second process being configured to apply textual input to the second data structure, wherein in response to a collision between synchronizing contents of the first data structure to the second data structure and synchronizing contents of the second data structure to the first data structure: reversing application of colliding textual input made by the first process to the first data structure; and applying textual input made by the application to the first data structure.
9. A non-transitory computer-readable storage medium having contents configured to cause a computing system to, in order to process textual input generated with a user input device: store the textual input in a first data structure contained in the address space of a first process; and synchronize contents of the first data structure to a second data structure contained in the address space of a second process distinct from the first process, an application executing in the second process being configured to apply textual input to the second data structure, wherein in response to a collision between synchronizing contents of the first data structure to the second data structure and synchronizing contents of the second data structure to the first data structure: reversing application of colliding textual input made by the first process to the first data structure; and applying textual input made by the application to the first data structure. 15. The non-transitory computer-readable storage medium of claim 9 having contents configured to further cause a computing system to: determine that the first data structure exceeds a size threshold; in response to determining that the first data structure exceeds the size threshold: identify contents of the first data structure that are distant from an insertion point and have not been recently modified; and delete the identified contents from the first data structure.