50
Perhaps the most critical fact to notice is that the frozen variations of dynamic opera-
tions are not actually useful. There is some small utility in frozen move and copy, but for
more complex operations, the frozen versions are not very interesting. Furthermore, unless
you consider dynamic operations, all the frozen operations can be simulated by appropriate
compositions of simple insertion and deletion operations. Even move and copy only change
the space efficiency of histories, but have no actual effect on the expressive power of those
histories. And of course, as we just noted, while version-completeness is satisfied by any set
of frozen operations, change-completeness is only available when dynamic operations can be
represented.
2.6 Types of dynamic operation
For the foregoing reasons, differentiation is really only found in the dynamic operations.
However there are a number of interesting distinctions within the dynamic operations, and
these affect the potential conflicts between operations. The distinctions between content-
independent, permutationalandcontent-dependentoperations separated them by the extent
to which they depend on the actual content of the data that they affect.
• Content independentoperationshave an effect that is always the same, whatever the
contents of the sequence are. Insertanddeleteare not editing operations whose opera-
tion in any sense depends on the actual data in the sequence; deletions are not condi-
tional on the state of the region slated for destruction, nor are insertions dependent on
the contents near the insertion point.
• Permutationaloperations likemoveandcopy(sometimes calledclone) rearrange existing
portions of a sequence. The exact string inserted by a copy operation changes with the
content of the source region, but in a minimal way, since that content is simply dupli-
cates at another location. Any kind of operation that simply permutes or duplicates the
elements of a sequence without looking at the contents of that sequence, is repre-
Perhaps the most critical fact to notice is that the frozen variations of dynamic opera-
tions are not actually useful. There is some small utility in frozen move and copy, but for
more complex operations, the frozen versions are not very interesting. Furthermore, unless
you consider dynamic operations, all the frozen operations can be simulated by appropriate
compositions of simple insertion and deletion operations. Even move and copy only change
the space efficiency of histories, but have no actual effect on the expressive power of those
histories. And of course, as we just noted, while version-completeness is satisfied by any set
of frozen operations, change-completeness is only available when dynamic operations can be
represented.
2.6 Types of dynamic operation
For the foregoing reasons, differentiation is really only found in the dynamic operations.
However there are a number of interesting distinctions within the dynamic operations, and
these affect the potential conflicts between operations. The distinctions between content-
independent, permutationalandcontent-dependentoperations separated them by the extent
to which they depend on the actual content of the data that they affect.
• Content independentoperationshave an effect that is always the same, whatever the
contents of the sequence are. Insertanddeleteare not editing operations whose opera-
tion in any sense depends on the actual data in the sequence; deletions are not condi-
tional on the state of the region slated for destruction, nor are insertions dependent on
the contents near the insertion point.
• Permutationaloperations likemoveandcopy(sometimes calledclone) rearrange existing
portions of a sequence. The exact string inserted by a copy operation changes with the
content of the source region, but in a minimal way, since that content is simply dupli-
cates at another location. Any kind of operation that simply permutes or duplicates the
elements of a sequence without looking at the contents of that sequence, is repre-