Scala y referencias [duplicado]

Posible duplicado:
Scala: referencias hacia adelante, ¿por qué se compila este código?

object Omg {

  class A

  class B(val a: A)

  private val b = new B(a)

  private val a = new A

  def main(args: Array[String]) {
    println(b.a)
  }

}

El siguiente código imprime "null". En java. La construcción similar no se compila debido a una referencia directa no válida. La pregunta es: ¿por qué se compila bien en Scala? ¿Es eso por diseño, descrito en SLS o simplemente error en 2.9.1?

Respuestas a la pregunta(4)

Su respuesta a la pregunta