code: def swap_args(self, new_args, new_length=None):
          
  
          if len(self.args) == len(new_args) and all(a is b for a,b in zip(self.args, new_args)):
              return self
  
          #symbolic = any(a.symbolic for a in new_args if isinstance(a, Base))
          #variables = frozenset.union(frozenset(), *(a.variables for a in new_args if isinstance(a, Base)))
          length = self.length if new_length is None else new_length
          a = self.__class__(self.op, new_args, length=length)
          #if a.op != self.op or a.symbolic != self.symbolic or a.variables != self.variables:
          #   raise ClaripyOperationError("major bug in swap_args()")
          return a
docs: This returns the same AST, with the arguments swapped out for new_args.