docs: def result_type(*arrays_and_dtypes):
      """Like np.result_type, but with type promotion rules matching pandas.
  
      Examples of changed behavior:
      number + string -> object (not string)
      bytes + unicode -> object (not unicode)
  
      Parameters
      ----------
      *arrays_and_dtypes : list of arrays and dtypes
          The dtype is extracted from both numpy and dask arrays.
  
      Returns
      -------
      numpy.dtype for the result.
      """
      types = {np.result_type(t).type for t in arrays_and_dtypes}
  
      for left, right in PROMOTE_TO_OBJECT:
          if (any(issubclass(t, left) for t in types) and
                  any(issubclass(t, right) for t in types)):
              return np.dtype(object)
  
      return np.result_type(*arrays_and_dtypes)