trait A

object B extends A {
  println("B")
}

object C exetends A {
  println("C")
}

object Main {
  def main(args: Array[String]): Unit = {
    println("RUN")
  }
}

このとき、標準出力には

RUN

しか表示されません。

これをどうにか、明示的なアクセスなく

B
C
RUN

と表示されるようにしたいです。なんらかのかたちでアクセスされる前に初期化したいです。
特定のアノテーションをつけると、そのクラス・オブジェクトにアクセスして初期化してくれるとか、型パラメータAを指定したとき、そのサブクラスにアクセスできる、みたいな方法はないですか?