2
trait Abstract1[C <: Abstract2[C]]
3
trait Abstract2[C <: Abstract2[C]] extends Abstract1[C]
4
class Parametrized1[T] extends Abstract1[Parametrized2[T]] {
5
def bar(a: AnyRef) { a match { case d: Parametrized1[_] => println("ok") } }
7
class Parametrized2[T] extends Parametrized1[T] with Abstract2[Parametrized2[T]]