Unfamiliar trait import syntax

Hi fellows i have a question, i am unfamiliar with the following syntax, what does it mean

trait MyExpressions {
//stufff
}    
trait MyScheduler {
  val IR: MyExpressions
  import IR._
//stufff
}

what does the following code achieves?

    val IR: MyExpressions
    import IR._

and is it an old syntax? if so what is the modern version?

Thanks

That is the usual syntax to import members of IR.

It means that if IR, for example, has a member x, you can now write x instead of IR.x.

IR is unusual in that vals usually are written lowercase.

but MyExpressions is not a supertype of MyScheduler right?
Thanks

Right, it is not.

Don’t know if it counts as unusual, but it’s also abstract. There’s no such abstract fields in Java, for instance.