def METHOD_NAME(list1: List[Any], list2: List[Any]) -> bool:
    if len(list1) != len(list2):
        return False
    for idx, el in enumerate(list1):
        if isinstance(el, dict):
            if not EqualUtil.dict_equal(el, list2[idx]):
                return False
        elif isinstance(el, list):
            if not EqualUtil.METHOD_NAME(el, list2[idx]):
                return False
        elif isinstance(el, Image.Image):
            if not EqualUtil.pil_equal(el, list2[idx]):
                return False
        elif isinstance(el, np.ndarray):
            if not np.array_equal(el, list2[idx]):
                return False
        else:
            if el != list2[idx]:
                return False
    return True