Есть ли лучший способ написать этот блок кода? В частности, возможно ли учесть преобразование во внешнюю функцию?
nodes collect { case x: InstrumentSource[_] if (x.m <:< implicitly[ClassManifest[BarClose]]) => x.asInstanceOf[InstrumentSource[BarClose]] };
m в InstrumentSource является манифестом класса:
case class InstrumentSource[A](implicit val m: ClassManifest[A])
и узлы - это коллекция различных InstrumentSource.