class_docstr: Abstract base class to add two operators.
  
  Each `Adder` acts independently, adding everything it can, paying no attention
  as to whether another `Adder` could have done the addition more efficiently.
class_docstr_tok: ["Abstract","base","class","to","add","two","operators",".","Each","`","Adder","`","acts","independently",",","adding","everything","it","can",",","paying","no","attention","as","to","whether","another","`","Adder","`","could","have","done","the","addition","more","efficiently","."]
docstr: Returns `True` if this `Adder` can add `op1` and `op2`.  Else `False`.
code: def can_add(self, op1, op2):
      """Returns `True` if this `Adder` can add `op1` and `op2`.  Else `False`."""
      pass
  
imports: import abc
  from tensorflow_probability.python.internal.backend.numpy import ops
  from tensorflow_probability.python.internal.backend.numpy.gen import tensor_shape
  from tensorflow_probability.python.internal.backend.numpy import numpy_array
  from tensorflow_probability.python.internal.backend.numpy import debugging
  from tensorflow_probability.python.internal.backend.numpy.gen import linear_operator
  from tensorflow_probability.python.internal.backend.numpy.gen import linear_operator_diag
  from tensorflow_probability.python.internal.backend.numpy.gen import linear_operator_full_matrix
  from tensorflow_probability.python.internal.backend.numpy.gen import linear_operator_identity
  from tensorflow_probability.python.internal.backend.numpy.gen import linear_operator_lower_triangular
  import numpy
  from tensorflow_probability.python.internal.backend.numpy import linalg_impl
  from tensorflow_probability.python.internal.backend.numpy import ops
  from tensorflow_probability.python.internal.backend.numpy.gen import tensor_shape
  from tensorflow_probability.python.internal.backend.numpy import private
label_desc: Use image node_id 2 for calling the _Adder obj's underlying member method code with example usage: obj.can_add(op1, op2) without return types