Having the unanchored extends looks really odd. Would something like this work?
extends
val a = (_ extends A){ ... }