``` scala scala> class C(private val x: Int) { def add(c: C) = x + c.x } ``` ``` defined class C ``` ``` scala scala> class C(x: Int) { def add(c: C) = x + c.x } ``` ``` error: type mismatch; found : c.type (with underlying type C) required: ?{val x: ?} ``` I agree they are similar in other cases though. :-)