code: def visit_BoolOp(self, node):
          
          res = list(zip(*[self.visit(elt).bounds() for elt in node.values]))
          return self.add(node, Interval(min(res[0]), max(res[1])))
docs: Merge right and left operands ranges.
  
          TODO : We could exclude some operand with this range information...
  
          >>> import gast as ast
          >>> from pythran import passmanager, backend
          >>> node = ast.parse('''
          ... def foo():
          ...     a = 2
          ...     c = 3
          ...     d = a or c''')
          >>> pm = passmanager.PassManager("test")
          >>> res = pm.gather(RangeValues, node)
          >>> res['d']
          Interval(low=2, high=3)