Вы делаете наследование нескольких классов там. если черта Live
распространяется Event
, ваш тип Algorithm with Live
имеет двух предков класса, Event
и Algorithm
. Это запрещено что вы хотите сделать, не ясно, но если возможно сделать Event
чертой, а не классом, это должно сработать. trait Live extends Event
подразумевает, что Live
должен быть смешан с Event
или подклассом. Так что, если Algorithm
может расширить Event
(маловероятно), это тоже сработает.