anchor.diff:      if assigned(Node) then begin
        Visited.Add(Node);
        inc(Count);
  -     if assigned(Node^.Left) and (Visited.IndexOf(Node^.Left)<0) then begin
  +     if assigned(Node^.Left) and not Visited.Contains(Node^.Left) then begin
         Stack.Add(Node^.Left);
        end;
  -     if assigned(Node^.Right) and (Visited.IndexOf(Node^.Right)<0) then begin
  +     if assigned(Node^.Right) and not Visited.Contains(Node^.Right) then begin
         Stack.Add(Node^.Right);
        end;
       end;
  
positive.code:  SetLength(ParallelNFAStack,Instance.CountForwardInstructions*2);
  
   FreeStates:=nil;
   AllStates:=TList.Create;
  
  end;
  
  
negative.code:             DoContinue:=true;
              HasOptimizations:=true;
             end;
            end;
            if DoContinue then begin
             continue;
  