code: def element_wise_op(array, other, op, ty):
      
      weld_obj = WeldObject(encoder_, decoder_)
  
      array_var = weld_obj.update(array)
      if isinstance(array, WeldObject):
          array_var = array.obj_id
          weld_obj.dependencies[array_var] = array
  
      other_var = weld_obj.update(other)
      if isinstance(other, WeldObject):
          other_var = other.obj_id
          weld_obj.dependencies[other_var] = other
  
      weld_template = """
         map(
           zip(%(array)s, %(other)s),
           |a| a.$0 %(op)s a.$1
         )
      """
  
      weld_obj.weld_code = weld_template % {"array": array_var,
                                            "other": other_var,
                                            "ty": ty, "op": op}
      return weld_obj
docs: Operation of series and other, element-wise (binary operator add)
  
      Args:
          array (WeldObject / Numpy.ndarray): Input array
          other (WeldObject / Numpy.ndarray): Second Input array
          op (str): Op string used to compute element-wise operation (+ / *)
          ty (WeldType): Type of each element in the input array
  
      Returns:
          A WeldObject representing this computation