anchor.diff:                     // then
                       if parser.NumIsTerminal curSymbol || parser.NumIsLiteral curSymbol
                       then
  -                        let isEq (sym : int) (elem : ParserEdge<'TokenType*ref<bool>>) = sym = parser.TokenToNumber (fst elem.Tag)
  +                        let isEq (sym : int) (elem : ParserEdge<'TokenType>) = sym = parser.TokenToNumber (elem.Tag)
                           
                           let curEdge = 
                               let mutable  c = false
  
positive.code:                             index
                          currentGSSNode := create !currentVertexInInput (packLabel rule (position + 1)) !currentGSSNode  !structures.CurrentN
                          for edge in input.OutEdges !currentVertexInInput do
                              let curToken = parser.TokenToNumber (fst edge.Tag)
  
                              let index = getIndex curSymbol curToken
                              let key =  int((int32 curSymbol <<< 16) ||| int32 (curToken - parser.NonTermCount  ))    
  
negative.code:                 | _ -> ()
                  num
                    
          let getNodeT (edge : ParserEdge<'TokenType>) =
              let beginVertix = edge.Source
              let endVertix = edge.Target
              let tag = edge.Tag
              let i = (parser.TokenToNumber ( tag)) - parser.NonTermCount
              if terminalNodes.[beginVertix, endVertix, i] <> Unchecked.defaultof<int<nodeMeasure>>
              then
                  terminalNodes.[beginVertix, endVertix, i]
              else
                  tokens.Add ( tag)
                  let t = new TerminalNode(tokens.Length - 1, packExtension beginVertix endVertix)
                  sppfNodes.Add t
                  let res = sppfNodes.Length - 1
  