@wingedsubmariner meant:
scala> class Fooer[Foo <: AbstractFoo : ClassTag] extends Performer {
| def perform = new FooPerformer[Foo]
| }
defined class Fooer
Also,
scala> trait Fooer[Foo <: AbstractFoo] extends Performer {
| implicit protected def tag: ClassTag[Foo]
| def perform = new FooPerformer[Foo]
| }
defined trait Fooer
scala> class Foob extends Fooer[AbstractFoo] {
| protected def tag = reflect.classTag[AbstractFoo]
| }
defined class Foob