def type_change(old, new):
    if all(isinstance(x, base) for x in old + new):
        return False
    if len(old) != len(new):
        return True
    new_types = list(map(type, new))
    old_types = list(map(type, old))
    return not all(map(issubtype, new_types, old_types))
Returns:
dataset/ETHPy150Open blaze/blaze/blaze/compute/core.py/type_change--crossover with--dataset/ETHPy150Open meraki-analytics/cassiopeia/cassiopeia/type/core/tournament.py/TournamentCode.pick_type