anchor.diff:          new GraphAction<_>(vertex, targetAct, gr) 
   
       for act in actionVInv do
  -        let visitedInv = ResizeArray.init (!maxV + 1) (fun _ -> false)
  -        bfsInv act FstInverse visitedInv |> tokensInv.Add |> ignore     //if from vertex exist and act-edge and eps-edge, then continue add edges.
  +        //let visitedInv = ResizeArray.init (!maxV + 1) (fun _ -> false)
  +        bfsInv act FstInverse visited |> tokensInv.Add |> ignore     //if from vertex exist and act-edge and eps-edge, then continue add edges.
  +        visited |> ResizeArray.iteri(fun i x -> visited.[i] <- false)
   
       let EqualEdges (edg1:TokenEdge<_>) (edg2:TokenEdge<_>) = 
           (edg1.Source = edg2.Source) && (edg1.Target = edg2.Target) && (edg1.Label = edg2.Label) && (edg1.BackRef = edg2.BackRef) //smth else?
  
positive.code:         let queueV = new Queue<_>()
          queueV.Enqueue(vertex)               
  
          let isAct v = Set.exists ((=) v) actionVInv
          let isEps v = inputFstLexer.OutEdges(v) |> Seq.exists(fun x -> x.Tag.OutSymb = Eps) 
  
          while queueV.Count > 0 do
  
negative.code:                 visited.[topV] <- true
                  for v in graphFst.OutEdges(topV) do
                      new TokenEdge<_>(v.Target, v.Source, match v.Tag.InSymb with |Smbl y -> y | _ -> failwith "Unexpected!!!" ) |> edgesToks.Add |> ignore
                      if actionVInvBool.[v.Target]
                      then if (isEps v.Target) then queueV.Enqueue(v.Target)
                      else queueV.Enqueue(v.Target)  
                                             
  