anchor.diff:              if not (containsEdge v u ast.tree)
               then
                   let newEdge = new Edge(u, ast)
  +               // edges.[gss.[getIndex2Vertex v].[getIndex1Vertex v].Level,gss.[getIndex2Vertex u].[getIndex1Vertex u].Level].Add(newEdge)
                   if setP.ContainsKey v
                   then
                       let trees = setP.[v]
                       let handleTree ast2 =
  +                        
                           let y = getNodeP label ast ast2
  -                        addContext label (getRightExtension ast2.extension) u y
  +                        addContext label (getRightExtension ast2.extension) u y      ////ast2 or ast!!! temp
                       trees |> ResizeArray.iter handleTree
  -                let vertex = gss.[getLevel v].[getLabel v]     
  +                let vertex = gss.[getIndex2Vertex v].[getIndex1Vertex v]     
                   if vertex.OutEdges.first <> Unchecked.defaultof<_>
                   then
                       if vertex.OutEdges.other <> null
  
positive.code:                     value.Add(temp)
                      setP.Add(u, value)
                  let processEdge (edge : Edge) =
                      let y1 = getNodeP label edge.Ast temp
                      addContext label i edge.Dest y1  
                  processEdge vertex.OutEdges.first
                  if vertex.OutEdges.other <> null 
                  then vertex.OutEdges.other |> Array.iter processEdge
  
negative.code:             let temp = 0
              if not (u = dummyGSSNode)
              then
                  let vertex = gss.[getIndex2Vertex u].[getIndex1Vertex u]
                  let temp = new ExtensionTree(extension, z)
                  let label = vertex.Label
                  if setP.ContainsKey u           //вот тут можно попробовать какой-нибудь tryGet
  