anchor.diff:              currentGraphV.unprocessedGssVertices.Add v 
           v
   
  -    let makeReductions (currentGraphV:VInfo<_>) =
  -        while currentGraphV.reductions.Count > 0 do
  +    let rec makeReductions (currentGraphV:VInfo<_>) =
  +            let newReductions = new ResizeArray<_>(10)
  +        //while currentGraphV.reductions.Count > 0 do
               for vertex, prod, pos, edgeOpt in currentGraphV.reductions do
                   //printfn "r: %A %A: %A %A" vertex.Level vertex.State prod pos
                   let nonTerm = parserSource.LeftSide.[prod]
  
positive.code:             v.unprocessedGssVertices.RemoveAll(fun _ -> true) |> ignore
  
      let globalCurV = ref startV
  
      if tokens.EdgeCount = 0
      then
  
negative.code:                         path.[i] <- getEpsilon parserSource.Rules.[parserSource.RulesStart.[prod] + i].[0]
                      path.[pos - 1] <- edgeOpt.Value.Ast
                      walk (pos - 1) (edgeOpt.Value : Edge).Dest path
              if newReductions.Count > 0 
              then 
                  currentGraphV.reductions <- newReductions 
                  makeReductions currentGraphV
      
      //let processEdge (e:QuickGraph.TaggedEdge<_,_>) =
      ///    shift        
  