Injections

TODO: this system is outlined; it will likely be among the last implemented

Injections of out-of-line text, such as citations or instructions or notes, may be made using the techniques described in those sections. Parallel text may be added using the technique described for translations.

Injections into arbitrary text should ordinarily be done using the normal mechanisms -- edit the containing file's text repository and incorporate the new text into one or more of the concurrent views into the structure. Inline injection of text should only be done when the injected data is meant to remain outside the public archives. Once it enters the public archives, the inline injections must be converted to inline text using the normal methods.

TODO: turn section below into real English

How to do inline injections:
 * Injections are a series of commands to be run on an existing text repository+selection+set of views
 * Need primitive commands to:
 * safely remove part of the selection
 * insert text before a point
 * insert text after a point
 * Inserted text is a mini-concurrent hierarchy.
 * This hierarchy must be on-the-fly merged into the existing views
 * 4 possibilities on how to merge each view that exists in the new hierarchy
 * Add to the selection only. Make entirely new views.
 * Add to the selection and merge with an existing range from above
 * Add to the selection and merge with an existing range from below
 * Add to the selection and merge with an existing range from both above and below