anchor.diff:      in
       t.Add(a,res);
       res    
  +       
  +do start_time := System.DateTime.UtcNow;
  +   printfn "Closure and goto calculation.\nStart time: %A" System.DateTime.UtcNow
       
   let closure = 
       memoize(fun q -> 
  
positive.code: let closure_set = 
      let t = System.Collections.Generic.Dictionary<item,Set<item>>()
      in
      Set.map (fun x -> t.Add(x,closure (Set.add  x empty)))Q;
      t
  
  let goto_set = 
  
negative.code: 
  let Q = Set.union_all (Set.of_list[Item('S',[NTerm('E');Dot(' ',1)])]::items)
  
  let getText a (x,y,z)= 
      match a 
      with 
      |Term(t) -> if x = 0 then ' ' else t 
      |NTerm(t)-> if y = 0 then ' ' else t
      |Dot(t,i)  -> if z = 0 then ' ' else t 
      
  //запоминалка. Используем для запоминания результатов ф-ий parse и climb   
  let memoize (f: 'a ->'b) =
  