code: def binop_return_dtype(op, left, right):
      
      if is_comparison(op):
          if left != right:
              raise TypeError(
                  "Don't know how to compute {left} {op} {right}.\n"
                  "Comparisons are only supported between Factors of equal "
                  "dtypes.".format(left=left, op=op, right=right)
              )
          return bool_dtype
  
      elif left != float64_dtype or right != float64_dtype:
          raise TypeError(
              "Don't know how to compute {left} {op} {right}.\n"
              "Arithmetic operators are only supported between Factors of "
              "dtype 'float64'.".format(
                  left=left.name,
                  op=op,
                  right=right.name,
              )
          )
      return float64_dtype
docs: Compute the expected return dtype for the given binary operator.
  
      Parameters
      ----------
      op : str
          Operator symbol, (e.g. '+', '-', ...).
      left : numpy.dtype
          Dtype of left hand side.
      right : numpy.dtype
          Dtype of right hand side.
  
      Returns
      -------
      outdtype : numpy.dtype
          The dtype of the result of `left <op> right`.