¿Una variable utilizada en su propia definición?

Una corriente infinita:

val ones: Stream[Int] = Stream.cons(1, ones)

¿Cómo es posible que un valor se use en su propia declaración? Parece que esto debería producir un error de compilación, pero funciona.

Respuestas a la pregunta(3)

Su respuesta a la pregunta