def METHOD_NAME(data_list: list[np.ndarray], dtype_out: str,
                    debug: bool=False) -> np.ndarray:
    """
    Takes an stackable numpy array of mixed types (e.g., ints/strings)
    and casts them to the appropriate output datatype
    (typically float32/float64).
    An array is stackable if it's the same shape (e.g., ints/floats).  This
    requirement is a bit looser for strings (4 characters per 32-bit float)
    """
    #shape = data_list[0].shape
    for i, datai in enumerate(data_list):
        #if isinstance(datai, bytes):
            ##print('bytes')
            #data_list[i] = np.frombuffer(datai, dtype=dtype_out)
        if datai.dtype != dtype_out:
            #print(datai.dtype, dtype_out)
            data_list[i] = view_dtype(datai, dtype_out)  # TODO: is this faster/correct?
            #data_list[i] = datai.view(dtype_out)  # TODO: is this faster/correct?
            #data_list[i] = np.frombuffer(datai.tobytes(), dtype=dtype_out)
        elif debug:
            #print('floats...')
            print(datai.shape)
        if debug:
            print(data_list[i].shape)
    try:
        out = np.column_stack(data_list)
    except ValueError:
        for i, datai in enumerate(data_list):
            print(i, datai.shape)
        raise
    return out