Noções básicas sobre enumerações scala

Eu tenho que dizer que não entendo as classes de enumeração do Scala. Eu posso copiar e colar o exemplo da documentação, mas não tenho ideia do que está acontecendo.

object WeekDay extends Enumeration {
  type WeekDay = Value
  val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
import WeekDay._
O que significatype WeekDay = Value e por que tenho que escrever isso?Por que éval Mon = Value? Afinal, o que isso quer dizer?Por que preciso importar oWeekDay objeto? E,quando eu escrevoval day = WeekDay.Monporque é tipoWeekDay.Valuenão tipoWeekDay?

questionAnswers(1)

yourAnswerToTheQuestion