anchor.diff:    if FREE_POINTERS
     and Groups[I].IsDead
     and (Groups[I].fPointerCount = 0) then
  -  begin
  -    Groups[I].Free;
       fGroups.Delete(I);
  -  end;
   
     for I := 0 to Count - 1 do
     if not Groups[I].IsDead then
  
positive.code: begin
    inherited Create;
  
    fGroups := TList.Create;
  end;
  
  
  
negative.code: 
    TKMUnitGroups = class
    private
      fGroups: TKMList;
  
      function GetCount: Integer;
      function GetGroup(aIndex: Integer): TKMUnitGroup;
  