anchor.diff:  
           let create label (u : int64<vertex>) (index : int) (ast : ExtensionTree) = 
               let v = containsGSSNode label index
  -            if not (containsEdge v u ast.tree)
  +            if not (containsEdge v u)
               then
                   let newEdge = new Edge(u, ast)
                  // edges.[gss.[getIndex2Vertex v].[getIndex1Vertex v].Level,gss.[getIndex2Vertex u].[getIndex1Vertex u].Level].Add(newEdge)
  
positive.code:         let setR = new Queue<Context>()   
          let setP = new System.Collections.Generic.Dictionary<int64<vertex>,ResizeArray<ExtensionTree>> ()
          let astDictionary = new System.Collections.Generic.Dictionary<int64<key>,AST> ()
          let setU = Array.init (inputLength+1) (fun _ -> new Dictionary<_*_, ResizeArray<INode>>())
              
          let currentIndex = ref 0
  
  
negative.code:                 packVertex i (curLevel.Count - 1)
              else packVertex i index
  
          let containsEdge (b : int64<vertex>) (e : int64<vertex>) =
              let edges = gss.[getIndex2Vertex b].[getIndex1Vertex b].OutEdges
              edges.first <> Unchecked.defaultof<_> && (edges.first.Dest = e || (edges.other <> null && edges.other |> Array.exists (fun edge ->  edge.Dest = e)))
  
  