classC[T]extendsD[T]{privatedefc1=0private[this]defc2=0}traitD[T]{self:C[T]=>privatedefd1=0private[this]defd2=0c1// a member, but inaccessible.c2// a member, but inaccessible.d1// okayd2// okayclassC{d1d2}defx(other:D[Any]){other.d1other.d2// not a member}}