anchor.diff:              condition := true
               let rule = getRuleNew !currentLabel
               let position = getPositionNew !currentLabel
  +            let eatTerm =
  +                currentIndex := packEdgePos (getEdge !currentIndex) (1 + getPosOnEdge !currentIndex)
  +                currentExtension := packExtension (getLeftExtension !currentExtension) !currentIndex
  +                currentLabel := 1<labelMeasure> * packLabelNew rule (position + 1)
  +                condition := false
               if Array.length parser.rules.[rule] = 0 
               then
                 pop !currentGSSNode !currentIndex !currentExtension
  
positive.code:             if setR.Count <> 0
              then
                  currentContext :=  get ()
                  
                  currentIndex := currentContext.Value.Index
                  
                  currentGSSNode := currentContext.Value.Vertex
                  currentLabel := currentContext.Value.Label
                  currentExtension := currentContext.Value.Extension
  
negative.code:                     for slotLevels in edge.Value do
                           let slot = slotLevels.Key
                           for level in slotLevels.Value do
                              let ext = packExtension (getLeftExtension extOnEdge) (getRightExtension extension)
                              let newVertex = new Vertex(level, slot)
                              addContext i (u.NontermLabel*1<labelMeasure>) newVertex ext
  