71
and copychanges. The essential cases are the interactions of move and copy with both point
and range locations of effect. As we saw in Section 3.3, points only designate locations
where new data is inserted, but ranges can have two possible effects: to copy data, or to de-
lete it from its context of occurrence (a range can both copy data, and delete it, as in move,
but we need not consider this separately).
For the copy operation, we have already seen that any change may need to be recorded
at either the source or the destination of a copy operation, because a copy essentially cre-
ates two separate (but coupled) instances of some common data; each instance may need to
be edited. Therefore, for copy operations, all sorts of addresses are sensible at both source
and target.
3.4.2a Addressing in the presence of move
The case of move is rather different, since it is rarely sensible to make changes at a
move’s destination rather than its source. Such changes are conditional, because they can
apply only when the move is active. Such conditional operations are not generally useful,
since, for a move operation, whether active or not, there will be only one copy of the moved
data; change-completeness is enhanced when changes to that data can combine with other
changes with maximal freedom, in other words: regardless of whether the data was moved.
For move, the typical application will probably want to determine the original locations of
the data and record the changes directly at those locations. If copy did not require essen-
tially the same machinery to handle separate modifications to originals, and copies, the
move operation’s interactions would not provide sufficient warrant for it.
For insertion points in a move, the forgoing argument is essentially airtight. Recording
insertions at the destination of the move rather than at the source, only has the effect of
limiting application and user choices, not enhancing them. The effect of recording an inser-
tion at the destination of a move is essentially to couple the insertion to the move, so that
its effect will occur only in states that include the move operation. However, this only im-
and copychanges. The essential cases are the interactions of move and copy with both point
and range locations of effect. As we saw in Section 3.3, points only designate locations
where new data is inserted, but ranges can have two possible effects: to copy data, or to de-
lete it from its context of occurrence (a range can both copy data, and delete it, as in move,
but we need not consider this separately).
For the copy operation, we have already seen that any change may need to be recorded
at either the source or the destination of a copy operation, because a copy essentially cre-
ates two separate (but coupled) instances of some common data; each instance may need to
be edited. Therefore, for copy operations, all sorts of addresses are sensible at both source
and target.
3.4.2a Addressing in the presence of move
The case of move is rather different, since it is rarely sensible to make changes at a
move’s destination rather than its source. Such changes are conditional, because they can
apply only when the move is active. Such conditional operations are not generally useful,
since, for a move operation, whether active or not, there will be only one copy of the moved
data; change-completeness is enhanced when changes to that data can combine with other
changes with maximal freedom, in other words: regardless of whether the data was moved.
For move, the typical application will probably want to determine the original locations of
the data and record the changes directly at those locations. If copy did not require essen-
tially the same machinery to handle separate modifications to originals, and copies, the
move operation’s interactions would not provide sufficient warrant for it.
For insertion points in a move, the forgoing argument is essentially airtight. Recording
insertions at the destination of the move rather than at the source, only has the effect of
limiting application and user choices, not enhancing them. The effect of recording an inser-
tion at the destination of a move is essentially to couple the insertion to the move, so that
its effect will occur only in states that include the move operation. However, this only im-