anchor.diff:      /// Returns tree which contains some unprocessed tokens. 
       /// Uses in highlighting.
       /// <para> unprocessed - list of number of tokens that need process. </para>
  -    /// <para> filter is a function that is involved in choosing trees.</para>
  +    /// <para> inputFilter is a function that is involved in choosing trees.</para>
       /// </summary>
  -    member this.GetNextTree (unprocessed : Terminal list) filter = 
  -        let processed = [| 
  -                            for i = 0 to tokens.Length - 1 do
  -                                yield not (unprocessed |> List.exists (fun j -> j.TokenNumber = i))
  -                        |]
  +    member this.GetNextTree (unprocessed : Terminal list) inputFilter = 
  +        let processedToks = Array.init tokens.Length (fun i -> not (unprocessed |> List.exists (fun j -> j.TokenNumber = i)))
           
           let rootFamily = 
               match root with
  
positive.code:         newTree, finalUnprocessed
  
      ///<summary>
      /// Returns all trees which contain some token.
      /// <para> tokenName - name of token </para>
      /// <para> tokRange - range of token </para>
      ///</summary>
  
negative.code: 
          /// list of unprocessed token after adding new tree
          let finalUnprocessed = 
              let index = ref -1
              let processElem elem acc = 
                  incr index
                  if elem then acc else new Terminal(!index) :: acc
  
              processedToks
              |> Array.fold (fun acc elem -> processElem elem acc) []
  
          // now parameter 'tokens' is all sppf tokens rather than tokens from new tree
          let newTree = new Tree<_> (tokens, tree, rules)
  