anchor.diff:  type ErrorDictionary<'TokenType> = Dictionary<Family, ErrorNode<'TokenType>>
   
   [<AllowNullLiteral>]
  -type Tree<'TokenType> (tokens : array<'TokenType>, root : AstNode, rules : int[][], leftSide : array<int> option, numToString : (int -> string) option) =
  +type Tree<'TokenType> (tokens : array<'TokenType>, root : AstNode, rules : int[][], _leftSide : array<int> option, _numToString : (int -> string) option) =
       let rootFamily, isEpsilonTree =
           match root with
           | :? AST as ast -> ast, false
  
positive.code:         | Some ind -> ind
  
      let getNonterminalStringByProd prod =
          match numToString with
          | None -> failwith "numToString is not specified"
          | Some nts ->
              match leftSide with 
              | None -> failwith "leftSide is not specified"
              | Some ls -> nts <| ls.[prod]
  
  
negative.code:     member this.RulesCount = rules.GetLength(0)
      member this.Tokens = tokens
      member this.TokensCount = tokens.Length
  
      member this.SpecifyNumToString nts = 
          numToString := nts 
  
      member this.SpecifyLeftSide ls = 
          leftSide := ls 
  
      static member inline private smaller pos : (AstNode -> _) = function
          | :? Epsilon | :? Terminal -> true
  