How could someone delegate to a generic-style variadic initializer?

  init<each S: MyProtocol>(_ somethings: repeat each S) { /*...*/ }
  init<S: MyProtocol>(_ elements: some Sequence<S>) { /*...*/ }

This type is going to conform to a protocol that includes a zero-argument initializer. I thought the first one above would count, but defining an init() didn't flag a duplication-attempt error. Could I explicitly delegate?

  init() {
    self.init(/*what the heck goes here*/)
  }

(Without writing anything, the highlighted fill in text is "somethings: repeat MyProtocol".) The error is "Pack expansion 'any MyProtocol' must contain at least one pack reference". How do I write down a zero-length pack reference?

I don't think there's a way to express this today.

Is it actually required that the zero-argument initializer delegate one of the others? Can you just implement it separately, or could you flip it so that init() does basic initialization and then the other inits delegate to it instead?

(post deleted by author)

I now use EmptyCollection with the second initializer.