anchor.diff:              if setR.Count <> 0
               then
                   currentContext :=  get ()
  -                
                   currentIndex := currentContext.Value.Index
  -                
                   currentGSSNode := currentContext.Value.Vertex
                   currentLabel := currentContext.Value.Label
                   currentExtension := currentContext.Value.Extension
  
positive.code:                             match curEdge with
                              | Some edge ->
                                  currentIndex := (packEdgePos curEdge.Value 0)
                                  currentIndex := packEdgePos (getEdge !currentIndex) (1 + getPosOnEdge !currentIndex)
                                  currentExtension := packExtension (getLeftExtension !currentExtension) !currentIndex
                                  currentLabel := 1<labelMeasure> * packLabelNew rule (position + 1)
                                  condition := false
                              | None _ -> ()
                      else 
                          let getIndex nTerm term = 
  
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
  