Scala несколько с

Новое для Scala. Язык довольно краткий.

Любопытно, почему для реализации нескольких признаков требуется несколько операторов "с".

Например:

class Foo extends Bar with A with B with C {}

против.

class Foo extends Bar with A, B, C {}

Ответ 1

Рассмотрим это

class Foo[A, B]

new Foo[Bar with D with E, Bar with E] {}

против

new Foo[Bar with D, E, Bar with E] {}

Это просто не однозначно во всех случаях.