anchor.diff:  
         case result.Subs.Count of
          0:begin
  -        result.Destroy;
  -        result:=nil;
  +        FreeAndNil(result);
          end;
          1:begin
           Left:=result.Subs[0];
           Left.Exact:=Left.Exact and result.Exact;
           result.Subs.Clear;
  -        result.Destroy;
  +        result.Free;
           result:=Left;
          end;
         end;
  
positive.code:       result.Subs.Delete(Counter);
        OK:=true;
       end else if Temp.Operation=FLREpfnoANY then begin
        Temp.Destroy;
        result.Subs.Delete(Counter);
        result.Exact:=false;
        OK:=true;
  
negative.code: begin
   if assigned(From) then begin
    while assigned(First) do begin
     First.Free;
    end;
    Inverted:=From.Inverted;
    Canonicalized:=From.Canonicalized;
  