anchor.diff:                      diffDerived.[i] <- diffSet
                   vertex, diffMain, diffDerived, needDfs
               else
  -                let vertex = new Vertex<int,int * (Set<int> * Set<int>)>(nextIndex())
  +                let vertex = new Vertex<int, int>(nextIndex())
                   wasEdge.Add Set.empty
                   vertices.Add vertex
                   kernelsToVertex.[key] <- vertex
  
positive.code:                         let newVertex : Vertex<_,_> = dfsLALR destStates_arr
                          if not <| wasEdge.[vertex.label].Contains newVertex.label then
                              wasEdge.[vertex.label] <- wasEdge.[vertex.label].Add newVertex.label
                              vertex.addEdge <| new Edge<_,_>(newVertex, (i, (dontStackSet, stackSet)))
          decr dfsDepth
          vertex
  
  
negative.code:                         for j = 0 to derivedKernels.Length-1 do
                              if curSymbol derivedKernels.[j] = i then
                                  let nextKernels = KernelInterpreter.nextPos grammar derivedKernels.[j]
  //                                stackSet <- Set.add (KernelInterpreter.getProd derivedKernels.[j]) stackSet 
                                  for nextKernel in nextKernels do
                                      if not <| destStates.ContainsKey nextKernel then
                                          destStates.[nextKernel] <- newDerivedLookaheads.[j]
  