anchor.diff:  
   open Yard.Generators.GLL.ParserCommon
   open Yard.Generators.GLL.MeasureTypes
  +open QuickGraph
  +open QuickGraph.Graphviz
   
   type GSSVertex (posInGrammar: int<positionInGrammar>, posInInput: int<positionInInput>) =    
   
  
positive.code:     new (stateToContinue, len) = {StateToContinue = stateToContinue; LengthOfProcessedString = len}
  
  type GSS () =
      inherit QuickGraph.AdjacencyGraph<GSSVertex,QuickGraph.TaggedEdge<GSSVertex,GSSEdgeLbl>>(true)
      /// Checks for existing of edge in gss edges set. If not adds it to edges set.
      member this.ContainsEdge (startVertex:GSSVertex, endVertex:GSSVertex, stateToContinue : int<positionInGrammar>, len : uint16) =
          let mutable realStartVertex = if startVertex = endVertex then endVertex else startVertex
  
negative.code:         exists, realStartVertex
  
      member this.ToDot fileName =
          let getStrFromVertex (v: GSSVertex) = 
              let edgeOfInput = CommonFuns.getEdge v.PositionInInput
              let posOnEdgeOfInput = CommonFuns.getPosOnEdge v.PositionInInput
              sprintf "St:%i;Edg:%i;Pos:%i" v.PositionInGrammar edgeOfInput posOnEdgeOfInput
  
          let printer = GraphvizAlgorithm(this)
          printer.CommonVertexFormat.Shape <- Dot.GraphvizVertexShape.Ellipse
          printer.FormatEdge.Add(fun (e:FormatEdgeEventArgs<_,_>) -> e.EdgeFormatter.Label.Value <- sprintf "ContSt:%i,Len:%i" e.Edge.Tag.StateToContinue e.Edge.Tag.LengthOfProcessedString)
          printer.FormatVertex.Add(fun (v:FormatVertexEventArgs<_>) -> v.VertexFormatter.Label <- getStrFromVertex v.Vertex)  
          let str = printer.Generate()        
              
          System.IO.File.WriteAllText(fileName, str)
  