anchor.diff:                  levels.[u.Level] <- [!curNum]
               else
                   levels.[u.Level] <- !curNum :: levels.[u.Level]
  -            //print <| sprintf "%d [label=\"%d_%d\"]" !curNum u.Level u.State 
               let rec printPrefixes (prefixes:ResizeArray<Prefix<_>>) (prevStr : string) =
                   let mutable curStr = prevStr + "["
                   if ResizeArray.isEmpty(prefixes) then curStr + "]"
                   else
                       for prefix in prefixes do
  -                        if prefix <> null
  +                        if prefix = null
                           then
  -                            curStr <- curStr + prefix.Head.Tag.ToString() + ":"
  -                            curStr <- printPrefixes prefix.Tail curStr
  -                    curStr
  +                            curStr <- curStr + "NULL, "
  +                        else
  +                            let tokenStr = tokenToNumber prefix.Head.Tag |> parserSource.NumToString
  +                            let tokenData = match parserSource.TokenData with | None -> "" | Some f -> f prefix.Head.Tag|> string
  +                            curStr <- curStr + tokenStr + tokenData + ":"
  +                            curStr <- printPrefixes prefix.Tail curStr + ", "
  +                    curStr + "]"
                           
               print <| sprintf "%d [label=\"%d_%d_%s\"]" !curNum u.Level u.State (printPrefixes gssVertexesToPrefixes.[u] "Prefixes:")
               incr curNum
  
positive.code:         then startV.passingReductions.Add((newVertex, edge))
          customEnqueue(startV)
          newVertex.addEdge edge
          if not <| gssVertexesToPrefixes.ContainsKey newVertex
                  then gssVertexesToPrefixes.Add(newVertex, new ResizeArray<Prefix<_>>())
          let prefixes = gssVertexesToPrefixes.[newVertex]
          for prefixToAdd in prefixesToAdd do
              addPrefix prefixes prefixToAdd //add new prefix to vertex
  
negative.code:             | None ->
                  v <- new Vertex(state, currentGraphV.vNum)
                  isNew <- true
                  gssVertexesToPrefixes.Add(v, new ResizeArray<Prefix<_>>())
                  listToAddUnprocessedGssV.Add v
                  for e in outEdgesInnerGraph.[currentGraphV.vNum] do
                      addZeroReduction v e.Tag currentGraphV false
          v, isNew
  
      //return old prefixes with new edge on end
      let extPrefix (oldPrefixes:ResizeArray<Prefix<_>>) edge =
          new Prefix<_>(edge, oldPrefixes)
  
      //add prefix to list of prefixes
  