anchor.diff:                      i <- j
                       count <- count + 1
                   count <- count + simpleEdges.[vertex].Count
  -                let vEdges = Array.zeroCreate count
  +                let vEdges =
  +                    if count > 0 then Array.zeroCreate count
  +                    else null
  +                let mutable first = Unchecked.defaultof<_>
                   i <- 0
  -                count <- 0
  +                count <- -1
                   while i < edges.Count do
                       let (v,_,a) = edges.[i]
                       let mutable j = i+1
  
positive.code:                 //printf "%d " usedStates.[i]
                  if parserSource.AccStates.[usedStates.[i]] then
                      root := Some nodes.Count
                      (stateToVertex.[usedStates.[i]].Edge 0).Ast
                      |> addTreeTop
                      |> nodes.Add
              match !root with
  
negative.code:                     else
                          //printfn "  m %d: %d %d" remainLength vertex.Level vertex.State
                          if vertex.Level <> num then
                              if vertex.OutEdges.other <> null then
                                  vertex.OutEdges.other |> Array.iter
                                      (fun e ->
                                          path.[remainLength - 1] <- e.Ast
                                          walk (remainLength - 1) e.Dest path)
                              path.[remainLength - 1] <- vertex.OutEdges.first.Ast
                              walk (remainLength - 1) vertex.OutEdges.first.Dest path
                          else
                              simpleEdges.[vertex.State] |> ResizeArray.iter(fun (v,a) ->
                                      path.[remainLength - 1] <- a
  