anchor.diff:  
   function TKMHandEntity.ObjToStringShort(const aSeparator: String = '|'): String;
   begin
  -  Result := Format('UID = %d%sPos = %s',
  -                   [UID, aSeparator,
  -                    Position.ToString]);
  +  Result := inherited ObjToStringShort(aSeparator) +
  +            Format('%sPos = %s', [aSeparator, Position.ToString]);
   end;
   
   
   function TKMHandEntity.ObjToString(const aSeparator: String = '|'): String;
   begin
  -  Result := ObjToStringShort(aSeparator) +
  +  Result := inherited ObjToString(aSeparator) +
               Format('%sOwner = %d%sPositionF = %s%sAllowAllyToSel = %s',
                      [aSeparator,
                       Owner, aSeparator,
  
positive.code:     function IsGroup: Boolean;
      function IsHouse: Boolean;
  
      function ObjToString(const aSeparator: String = '|'): String; virtual;
      function ObjToStringShort(const aSeparator: String = '|'): String; virtual;
    end;
  
    TKMHandEntityPointer<T> = class abstract(TKMHandEntity)
  
negative.code: end;
  
  
  
  function TKMEntity.ObjToStringShort(const aSeparator: String = '|'): String;
  begin
    Result := Format('UID = %d', [UID]);
  end;
  
  
  function TKMEntity.ObjToString(const aSeparator: String = '|'): String;
  begin
    Result := ObjToStringShort(aSeparator);
  end;
  
  
  { TKMHandEntity }
  constructor TKMHandEntity.Create(aType: TKMHandEntityType; aUID: Integer; aOwner: TKMHandID);
  begin
  