anchor.diff:                  
                   pop !currentGSSNode !currentIndex !currentExtension !currentLength
               else
  -                setR.Count                
  +                //setR.Count                
                   if Array.length parser.rules.[rule] <> position
                   then
                       let curSymbol = parser.rules.[rule].[position]
  
positive.code:                 let pos = (1 + getPosOnEdge !currentIndex)
                  currentIndex := packEdgePos (getEdge !currentIndex) pos
                  currentLength := !currentLength + 1us
                  let ttt = getPosOnEdge (getLeftExtension !currentExtension)
                  let le = (getLeftExtension !currentExtension)
                  let re = packEdgePos (getEdge !currentIndex) ((getPosOnEdge !currentIndex) + shift)
                  currentExtension := packExtension le re
  
negative.code:                                 for pair in ra do if (fst pair) = e.NontermLabel then contains <- true
                                  if contains then true, None
                                  else
                                      let a = ref ra
                                      Array.Resize(a, ra.Length + 1)
                                      (!a).[ra.Length] <- (e.Level,len)
                                      dictNontermKey.[e.NontermLabel] <- (!a)
                                      false, None
                              else
                                  //let arr = new ResizeArray<_>()
                                  //arr.Add((e.Level,len))
                                  let arr = [|e.Level,len|]
                                  dictNontermKey.Add(e.NontermLabel, arr)
                                  false, None
                          else
  //                            let ra = new ResizeArray<_>()
  //                            ra.Add((e.Level,len))
                              let arr = [|e.Level,len|]
                              let d = new SysDict<int, _>()
                              d.Add(e.NontermLabel, arr)
                              dictExtensionKey.Add(extension, d)
                              false, None    
                      else
                          let d1 = new SysDict<int64<extension>, SysDict<int, _>>()
                          let d2 = new SysDict<int, _>()
  //                        let ra = new ResizeArray<_>()
  //                        ra.Add((e.Level,len))
                          let arr = [|e.Level,len|]
                          d2.Add(e.NontermLabel, arr)
                          d1.Add(extension, d2)
                          dictLabelKey.Add(label, d1)
                          false, None
                  else 
                      let d0 = new SysDict<int, SysDict<int64<extension>, SysDict<int, _>>>()
                      let d1 = new SysDict<int64<extension>, SysDict<int, _>>()
                      let d2 = new SysDict<int, _>()
  //                    let ra = new ResizeArray<_>()
  //                    ra.Add((e.Level,len))
                      let arr = [|e.Level,len|]
                      d2.Add(e.NontermLabel, arr)
                      d1.Add(extension, d2)
                      d0.Add(label, d1)
                      false, Some d0
  