anchor.diff:  
       let rec dfs (u : Vertex) =
           was.Add (u, !curNum)
  +        if not <| levels.ContainsKey u.Level then
  +            levels.[u.Level] <- [!curNum]
  +        else
  +            levels.[u.Level] <- !curNum :: levels.[u.Level]
           print <| sprintf "%d [label=\"%d\"]" !curNum u.State
           incr curNum
           if u.OutEdges.first <> Unchecked.defaultof<_> then
  
positive.code:     for v in initNodes do
          if not <| was.ContainsKey v then
              dfs v
  
      out.WriteLine "}"
      out.Close()
  
negative.code:         (initNodes : seq<Vertex>) (numToString : int -> string) (path : string) =
      use out = new System.IO.StreamWriter (path)
      let was = new Dictionary<_,_>()
      let levels = new Dictionary<_,_>()
      out.WriteLine "digraph GSS {"
      let print s = out.WriteLine ("    " + s)
      let curNum = ref 0
  