anchor.diff:                  //if parser finished in the non-accepting state and it generates the recovery
                   pushes.Clear()
   
  -                while curVertices.Value.Count <> 0 && not <| containsRecState !curVertices temp recVertNumber do
  +                while curVertices.Value.Count <> 0 && not <| containsRecState !curVertices temp recVertNumber (fun () -> ()) do
                       curVertices := getPrevVertices !curVertices
                   
                   let skipped = Queue<_>()
  
positive.code:                         for (prod, pos) in arr do
                              let edgeOpt = Some (vertex.OutEdges.first.Dest, vertex.OutEdges.first.Ast)
                              reductions.Push (vertex, prod, pos, edgeOpt)
                          makeReductions !curInd
                          temp.Enqueue path
                      //if shift is possible
                      let push = parserSource.Gotos.[vertex.State].[!curNum]
  
negative.code:             if errorRuleExist 
              then 
                   recovery()
                   makeReductions (!curInd + 1) recovery
                   attachEdges()
              else wasError := true
  
  