Ruby 2.7 で in 演算子が使えるようになる

Ruby 2.7 で in 演算子が使えるようになります。
そもそも in 演算子ってなんやねんって話なんですが、同じく Ruby 2.7 で入る予定のパターンマッチ構文の in になります。
例えばパターンマッチを使用することで次のような判定を行うことが出来ます。

def check user
  # name に m が含まれていて age が 14以下
  case user
  in { name: /m/, age: (..14) }
    "OK"
  else
    "NG"
  end
end

p check(id: 1, name: "Homu", age: 13)
# => OK
p check(id: 2, name: "mami", age: 15)
# => NG

このようにパターンマッチを使用する事でより細かく条件を指定する事が出来ます。

in 演算子を使う

上記の例だと case <expr>; in <pattern>; ... end みたいな構文を書く必要があるのでやや冗長に見えますね。
そこで in 演算子です。
in 演算子を使うことでパターンマッチ式を1行で書くことが出来ます。

def check user
  # name に m が含まれていて age が 14以下
  # in 演算子は true / false を返す
  (user in { name: /m/, age: (..14) }) ? "OK" : "NG"
end

p check(id: 1, name: "Homu", age: 13)
# => OK
p check(id: 2, name: "mami", age: 15)
# => NG

in 演算子はパターンマッチと同様に <expr> in <pattern> と書くことが出来ます。
また戻り値は true / false になります。
これは次のような select などと組み合わせるとより強力になります。

users = [
    { id: 1, name: "Homu", age: 13 },
    { id: 2, name: "mami", age: 14 },
    { id: 3, name: "Mado", age: 21 },
    { id: 4, name: "saya", age: 14 },
]

# @1 から _1 に変わったナンパラを使うとより簡潔にかける
p users.select { _1 in { name: /m/, age: (..14) } }
# => [{:id=>1, :name=>"Homu", :age=>13}, {:id=>2, :name=>"mami", :age=>14}]

これめっちゃ便利そうですね!!!
ちなみに in 演算子なのか in 式なのかどっちが正しいんですかね?
matz が in operaetor と書いていたので in 演算子と明記しましたが in 式のほうが正しいのかな。