anchor.diff:                          | :? TerminalNode as t ->
                               currentN := getNodeP !currentLabel !currentR !currentN
                               let r = (sppfNodes.Item <| int !currentN) :?> NonTerminalNode 
  -                            pop !currentGSSNode !currentIndex !currentN r.Extension
  +                            pop !currentGSSNode !currentIndex !currentN
                           | :? NonTerminalNode as r ->
                               if (r.Name = parser.LeftSide.[parser.StartRule]) && r.Extension = finalExtension
                               then 
                                   resultAST := Some r 
  -                            pop !currentGSSNode !currentIndex !currentN r.Extension
  +                            pop !currentGSSNode !currentIndex !currentN
   
           let control () =
                while not !stop do
  
positive.code:                     | :? TerminalNode as term ->
                          term.Extension 
                      | _ -> failwith "Smth strange, Nastya" 
                  //y := findSPPFSymbolNode(t, k, i)
                  //findSPPFPackNode(y, s, k, (), w)
                      
                  let y = findSppfNode label (getLeftExtension leftExt) (getRightExtension rightExt)
                  ignore <| findSppfPackedNode y label leftExt rightExt currentLeft currentRight
  
negative.code:                         addContext index label vertex y 
              v
  
          let pop (u : Vertex) (i : int) (z : int<nodeMeasure>) =
              if u <> dummyGSSNode
              then
                  let vertexKey = (u.Level, u.Label)
  