RealPatch is used to represents prim patches that are duplicates of, or
conflict with, another prim patch in the repository.
Normal prim: A primitive patch
Duplicate x: This patch has no effect since
x is already present in the
Etacilpud x: invert (Duplicate x)
Conflictor ix xx x:
ix is the set of patches:
* that conflict with
x and also conflict with another patch in the
* that conflict with a patch that conflict with
xx is the sequence of patches that conflict *only* with
x is the original, conflicting patch.
x are stored as
Non objects, which include any necessary
context to uniquely define the patch that is referred to.
The intuition is that a Conflictor should have the effect of inverting any
x conflicts with, that haven't already been undone by another
Conflictor in the repository.
Therefore, the effect of a Conflictor is
InvConflictor ix xx x: like
invert (Conflictor ix xx x)