¿Los parámetros del constructor de Scala están predeterminados a valores privados?

He estado intentando:

class Foo(bar: Int)

vs:

class Foo(private val bar: Int)

y parecen comportarse igual aunque no pude encontrar en ninguna parte diciendo que(bar: Int) se expande a(private val bar: Int) así que mi pregunta es, son estos idénticos / similares?

En una nota lateral, he estado tratando de usar-Xprint:typer en estas piezas de código y producen el mismo código a excepción de una línea adicional en la segunda. ¿Cómo leo esa línea extra?

..
class Foo extends scala.AnyRef {
  <paramaccessor> private[this] val bar: Int = _;
  def <init>(bar: Int): this.Foo = {
    Foo.super.<init>();
    ()
  }
}
..


..
class Foo extends scala.AnyRef {
  <paramaccessor> private[this] val bar: Int = _;
  <stable> <accessor> <paramaccessor> private def bar: Int = Foo.this.bar;
  def <init>(bar: Int): this.Foo = {
    Foo.super.<init>();
    ()
  }
}
..

Respuestas a la pregunta(2)

Su respuesta a la pregunta