получает в качестве типа наиболее конкретный супертип из перечисленных альтернатив).

жешь написать:

str match { case "foo" | "bar" => ... }

На первый взгляд это выглядит так| может быть объектом-экстрактором, однако:

str match { case |("foo", "bar") => ... }

не работает. (И я не вижу, как это можно реализовать в любом случае.)

Так это волшебный встроенный оператор?

(Я думаю, что я видел этот вопрос на SO раньше, но невозможно найти ...)

Ответы на вопрос(2)

Ваш ответ на вопрос