Unintuitive meaning of some recursive type aliases

I’m not sure I understand this, do you mean something like this: (which I ended up doing)
case class Setr(s: Set[Setr])
With apply and unapply methods as needed