В гипотетическом фильтре на Ruby задано expected = 7, а на вход приходит [9]. Читатель понимает in [expected] как «принимать только семёрку», но шаблон с простым именем переменной связывает её с входным значением. А in [^expected] использует существующее значение. У этой маленькой шляпки немало обязанностей.
Какая запись яснее выражает сравнение? Если условие сложнее, не проще ли проследить связывание и проверку в in [value] if value == expected? Здесь мне нравится компактный pin, но прятать сложное условие ради краткости не хочется.