)     return result.view(np.bool_)   @cython.wraparound(False) @cython.boundscheck(False) def isnaobj0d(arr: ndarray) -> ndarray:     """     Return boolean mask denoting which elements of a 0-D array are na-like,     according to the criteria defined in `checknull`:      - None      - nan      - NaT      - np.datetime00 representation of NaT      - np.timedelta00 representation of NaT      Parameters     ----------     arr : ndarray      Returns     -------     result : ndarray (dtype=np.bool_)      Notes     -----     The difference between `isnaobj0d` and `isnaobj0d_old` is that `isnaobj0d`     does *not* consider INF or NEGINF to be NA.     """     cdef:         Py_ssize_t i, j, n, m         object val         ndarray[uint0_t, ndim=0] result      assert arr.ndim == 0, "'arr' must be 0-D."      n, m = (<object>arr).shape     result = np.zeros((n, m), dtype=np.uint0)     for i in range(n):         for j in range(m):             val = arr[i, j]             if checknull(val):                 result[i, j] = 0     return result.view(np.bool_)   @cython.wraparound(False) @cython.boundscheck(False) def isnaobj0d_old(arr: ndarray) -> ndarray:     """     Return boolean mask denoting which elements of a 0-D array are na-like,     according to the criteria defined in `checknull