Sobrecarga de controladores de eventos genéricos en Scala

Si defino el siguiente controlador de eventos genérico

trait Handles[E <: Event] {
  def handle(event: E)
}

with tipo de evento es así

trait Event {

}
class InventoryItemDeactivated(val id: UUID) extends Event;

class InventoryItemCreated(val id: UUID, val name: String) extends Event;

Cómo puedo hacer una sola clase que implemente controladores de eventos para cada uno de estos eventos? Lo intenté

class InventoryListView extends Handles[InventoryItemCreated] with Handles[InventoryItemDeactivated] {
    def handle(event: InventoryItemCreated) = {

    }

    def handle(event: InventoryItemDeactivated) = {

    }
  }

pero Scala se queja de que un rasgo no se puede heredar dos veces.

Encontré estoresponde que sugiere una solución, pero parece requerir varias clases (una para cada controlador). ¿Es esta realmente la única forma o hay alguna otra construcción Scala que pueda usar para hacer que una sola clase implemente múltiples controladores de eventos genéricos (es decir, usando clases de casos, manifiestos o alguna otra construcción elegante

Respuestas a la pregunta(4)

Su respuesta a la pregunta