Извините за шестилетнюю задержку.
Я не верю, что эту проблему можно решить с помощью карты. Уведомления имеют вид:
case LoginEvent(date) => ...
, который включает в себя шаблон, который содержит переменную дату, значение которой неизвестно во время компиляции: он будет связан, если шаблон соответствует во время выполнения.
Вы на самом деле не хотите список (или набор) значений домена. Вы хотите знать шаблон, как я его вижу.
Я также сталкивался с этой проблемой, и, хотя она, возможно, не является распространенной проблемой, согласился, она действительно погружается в роль отражения в Scala: способность проверять код изнутри программы. Это касается различия между мелкими и глубокими внутренними DSL. Приведенный выше DSL неглубокий, что приводит к невозможности анализа кода.