anchor.diff:                      else
                           //printfn "  m %d: %d %d" remainLength vertex.Level vertex.State
                           if vertex.Level <> num then
  -                            vertex.OutEdges |> Array.iter
  -                                (fun e ->
  -                                    path.[remainLength - 1] <- e.Ast
  -                                    walk (remainLength - 1) e.Dest path)
  +                            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
  
positive.code:                     i <- j
                      count <- count + 1
                  count <- count + simpleEdges.[vertex].Count
                  let vEdges = Array.zeroCreate count
                  i <- 0
                  count <- 0
                  while i < edges.Count do
                      let (v,_,a) = edges.[i]
                      let mutable j = i+1
  
negative.code:                 let mutable i = 0
                  let vertex = usedStates.[s]
                  let edges = edges.[vertex]
                  let mutable count = -1
                  while i < edges.Count do
                      let k = trd edges.[i]
                      let mutable j = i+1
  