Cómo inicializar una variable de rasgo que es un val

Tengo MyObject y MyTrait:

class MyObject(private val myname: String = "") extends MyTrait {

  _name = myname

  def foo(myname : String) {
   _name = myname
  }
}

trait MyTrait {

  protected var _name: String = _

  def name = _name

}

Esto funciona bien ya que esto

val myObject = new MyObject("abc")
println(myObject.name)
myObject.foo("def")
println(myObject.name)

huellas dactilares

abc
def

como se esperaba.

El problema ahora es que quiero que MyTrait._name sea un val en lugar de una var. Pero no hay manera de que pueda lograr compilar esto. Cualquier consejo apreciado.

Saludos, Oliver

Respuestas a la pregunta(1)

Su respuesta a la pregunta