docs: def on_boolop(self, node):    # ('op', 'values')
          """Boolean operator."""
          val = self.run(node.values[0])
          is_and = ast.And == node.op.__class__
          if (is_and and val) or (not is_and and not val):
              for n in node.values[1:]:
                  val = op2func(node.op)(val, self.run(n))
                  if (is_and and not val) or (not is_and and val):
                      break
          return val