Понимание перечислений scala

Я должен сказать, что не понимаю перечислимые классы Scala. Я могу скопировать и вставить пример из документации, но я понятия не имею, что происходит.

object WeekDay extends Enumeration {
  type WeekDay = Value
  val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
import WeekDay._
What means type WeekDay = Value and why do I have to write that? Why is val Mon = Value? What does that even mean? Why do I have to import the WeekDay object? And, when I write val day = WeekDay.Mon, why is it type WeekDay.Value, not type WeekDay?

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

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