anchor.diff:                  | _ -> ()
                   num
                     
  -        let getNodeT (edge : ParserEdge<'TokenType*ref<bool>>) =
  +        let getNodeT (edge : ParserEdge<'TokenType>) =
               let beginVertix = edge.Source
               let endVertix = edge.Target
               let tag = edge.Tag
  -            let i = (parser.TokenToNumber (fst tag)) - parser.NonTermCount
  +            let i = (parser.TokenToNumber ( tag)) - parser.NonTermCount
               if terminalNodes.[beginVertix, endVertix, i] <> Unchecked.defaultof<int<nodeMeasure>>
               then
                   terminalNodes.[beginVertix, endVertix, i]
               else
  -                tokens.Add (fst tag)
  +                tokens.Add ( tag)
                   let t = new TerminalNode(tokens.Length - 1, packExtension beginVertix endVertix)
                   sppfNodes.Add t
                   let res = sppfNodes.Length - 1
  
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:                    // then
                      if parser.NumIsTerminal curSymbol || parser.NumIsLiteral curSymbol
                      then
                          let isEq (sym : int) (elem : ParserEdge<'TokenType>) = sym = parser.TokenToNumber (elem.Tag)
                          
                          let curEdge = 
                              let mutable  c = false
  