code: def visit_BinOp(self, node):
          
          args = [self.visit(arg) for arg in (node.left, node.right)]
          return list({frozenset.union(*x) for x in itertools.product(*args)})
docs: Return type depend from both operand of the binary operation.