code: def _find_domain_pointwise_binary_generic(op, lhs, rhs):
      if (
          isinstance(lhs, ArrayType)
          and isinstance(rhs, ArrayType)
          and lhs.dtype == rhs.dtype
      ):
          return Array[lhs.dtype, broadcast_shape(lhs.shape, rhs.shape)]
      raise NotImplementedError("TODO")
  
imports: import copyreg
  import functools
  import inspect
  import operator
  import warnings
  from functools import reduce
  from weakref import WeakValueDictionary
  import funsor.ops
  from funsor.ops.builtin import parse_ellipsis, parse_slice
  from funsor.util import broadcast_shape, get_backend, get_tracing_state, quote
label_desc: Use image node_id 12 for calling a global function with example usage: _find_domain_pointwise_binary_generic(op, lhs, rhs) and returns: Array