ser = pd.Series(range(5))
ser2 = ser.astype("uint64")

ii = pd.IntervalIndex.from_arrays(ser.values, ser2.values)

>>> ii.right.dtype
dtype('uint64')

We do some casting in _ensure_simple_new_inputs to check we have matching dtypes, but looks like we miss signed-vs-unsigned cases.

Comment From: Aniketsy

Hi @jbrockmendel, Would it make sense to add a check in _ensure_simple_new_inputs that raises a TypeError when the left and right arrays have mismatched signed and unsigned integer dtypes (e.g- int64 vs uint64)?

Comment From: jbrockmendel

i think so, yes.