anchor.diff:          if outEdges <> null && outEdges.Length <> 0
           then
               let vertexKey = packVertexFSA curVertex.PositionInInput curVertex.PositionInGrammar
  -
  -            //let cond, value = setP.TryGetValue vertexKey
               let value = curVertex.P.Add (curIndex, curLen)
  -//            if cond
  -//            then
  -//                value.Add (curIndex, curLen)
  -//            else
  -//                let newList = new ResizableUsualOne<_>((curIndex, curLen))
  -//                setP.Add(vertexKey, newList)
  -
               for e in outEdges do
                   addContext curIndex e.Tag.StateToContinue e.Target (curLen + e.Tag.LengthOfProcessedString)
   
  
positive.code:              r.[input.Edges.[i].Start].Add i
          r
  
  //    /// Descriptors
  //    let setU = new CompressedArray<SysDict<int<state>, int64[]>>(Array.concat([input.ChainLength;[|input.EdgeCount|]]), (fun _ -> null ),0)
  //    /// Poped elements
  //    let setP = new SysDict<int64<gssVertex>, Yard.Generators.Common.DataStructures.ResizableUsualOne<int<positionInInput>*uint16>>(500)
  //    /// Edges of GSS:
  //    /// |vertex| --- stateToContinue, length ---> |vertex|
  //    let edges = Array.init parser.NonTermCount (fun _ -> new CompressedArray<SysDict<int<state>, SysDict<int<state>, (int<positionInInput> * uint16)[]>>> (input.ChainLength, (fun _ -> null),0))
  
      let gss = new GSS()
  
      /// State of FSA.
  
negative.code:         if not <| vertex.ContainsContext inputVertex state
          then pushContext inputVertex state vertex len
  
          
      ///Creates new descriptors.(Calls when found nonterninal in rule(on current input edge, or on some of next)))
      let create (stateToContinue : int<positionInGrammar>) (posInGrammar : int<positionInGrammar>) =
  