anchor.diff:                  newStt.Info
                   |> ResizeArray.iter(
                       fun i -> 
  -                        if x.Info.Exists(fun j -> j.StartV = i.StartV && ResizeArray.length i.AccumulatedString = j.AccumulatedString.Count
  -                                                    && ResizeArray.forall2 (=) i.AccumulatedString j.AccumulatedString) 
  -                            |> not
  +                        if x.Info.Exists(fun j -> j.StartV = i.StartV
  +                                                  && ResizeArray.length i.AccumulatedString = j.AccumulatedString.Count
  +                                                  && ResizeArray.forall2 (=) i.AccumulatedString j.AccumulatedString) 
  +                           |> not
                           then x.Info.Add i)
               | None -> states.[e.Target].Add newStt
   
  
positive.code:                 |> ResizeArray.iter
                      (fun (i:StateInfo<_>) ->                        
                          new string(i.AccumulatedString.ToArray())
                          |> actions ((*if x.AcceptAction > -1 then x.AcceptAction else*) int accept.[x.StateID])
                          |> fun x -> res.AddEdgeForsed(new AEdge<_,_>(i.StartV,sorted.[sorted.Length-1],(Some x,None)))))
          res
                            
  
negative.code:                                 let acc = 
                                      if stt.Info.Count > 0
                                      then
                                          let newBuf (i:StateInfo<_>) = ResizeArray.concat [i.AccumulatedString; ResizeArray.singleton ch.Value]
                                          stt.Info |> ResizeArray.map (fun i -> new StateInfo<_>(i.StartV, newBuf i))
                                      else ResizeArray.singleton(new StateInfo<_>(v, ResizeArray.singleton ch.Value))
                                  let newStt = new State<_>(news,onAccept,acc)
                                  add e newStt
  