docstr: Add a new low and high bound for a variable.
  
  As it is flow insensitive, it compares it with old values and update it
  if needed.
docstr_tok: ["Add","a","new","low","and","high","bound","for","a","variable",".","As","it","is","flow","insensitive",",","it","compares","it","with","old","values","and","update","it","if","needed","."]
code: def add(self, variable, range_):
      """
      Add a new low and high bound for a variable.
  
      As it is flow insensitive, it compares it with old values and update it
      if needed.
      """
      if variable not in self.result:
          self.result[variable] = range_
      else:
          self.result[variable] = self.result[variable].union(range_)
      return self.result[variable]
  
imports: import gast
  from collections import defaultdict
  from functools import reduce
  from pythran.analyses import Aliases, CFG
  from pythran.intrinsic import Intrinsic
  from pythran.passmanager import ModuleAnalysis
  from pythran.interval import Interval, IntervalTuple, UNKNOWN_RANGE
  from pythran.tables import MODULES, attributes
label_desc: Use image node_id 2 for calling the RangeValuesBase obj's underlying member method code with example usage: obj.add(variable, range_) and returns: self