1. A memory configured by storing data and instructions in a computing system which has a processor operable in communication with the memory, the configured memory comprising: an editable buffer; a snapshots data structure stored in the memory, including a directed acyclic graph (DAG) of node(s), and a snapshot head identifying a tree within the DAG, the tree including leaf node(s) having unmodifiable span(s) that hold data element(s) representing information that was resident in the buffer at a particular point in time regardless of subsequent editing of the buffer; and processor instructions stored in the memory and designed for creating in the DAG a second tree whose leaf node(s) have span(s) whose data element(s) match one-to-one a subsequence of data element(s) held by span(s) of leaf node(s) of a first tree of the DAG.