code: def add(self, variable, range_):
          
          if variable not in self.result:
              self.result[variable] = range_
          else:
              self.result[variable] = self.result[variable].union(range_)
          return self.result[variable]
docs: 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.