def has_same_info(B, A):
    """ Check if A has the same or less info than B """
    # This is basically the same as "less specific", but easier to reason with
    n_values_A = sum((0 if c.is_empty else 1 for c in A))
    n_values_B = sum((0 if c.is_empty else 1 for c in B))
    if n_values_A > n_values_B:
        return False

    for ca, cb in zip(A, B):
        if ca.is_empty:
            continue
        if not ca == cb:
            return False
    return True