Extender Scala Set con tipo concreto

Realmente luchando por descubrir extender el conjunto inmutable con una clase que representará un conjunto de tipo concreto. Estoy haciendo esto para tratar de crear un buen DSL.

Me gustaría tener una clase Thing, y cuando agregas 'cosas' juntas obtienes un objeto ThingSet, que extiende Set.

class Thing(val name:String){
  def +(other: Thing):ThingSet = new ThingSet() + other
}

Simplemente no puedo entender cómo hacer el objeto ThingSet. Sé que necesito mezclar rasgos como GenericSetTemplate, SetLike, etc. Pero no puedo hacer que funcione.

Por favor, ¿alguien puede darme algunos consejos, ya que no puedo encontrar nada lo suficientemente explícito para aprender? He intentado mirar las implementaciones de BitSet y HashSet, pero me pierdo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta