Zrozumienie wyliczeń scala

Muszę powiedzieć, że nie rozumiem klas wyliczeniowych Scala. Mogę skopiować i wkleić przykład z dokumentacji, ale nie mam pojęcia, co się dzieje.

object WeekDay extends Enumeration {
  type WeekDay = Value
  val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
import WeekDay._
Co znaczytype WeekDay = Value i dlaczego muszę to napisać?Dlaczego jestval Mon = Value? Co to w ogóle znaczy?Dlaczego muszę zaimportowaćWeekDay obiekt? I,kiedy piszęval day = WeekDay.Mon, dlaczego to jest typWeekDay.Value, nie wpiszWeekDay?

questionAnswers(1)

yourAnswerToTheQuestion