I think result builders may need to be beefed up to support the proposed syntax, right? Otherwise you're looking at a lot of overloads. For example, from the beginning of the thread:
Group {
"Date: "
Date.FormatStyle.rfc1123.capture { HTTPHeaderField.date($0) }
Newline()
}
Would this evaluate to something like?
Group<(Pattern<Void>, Pattern<Date>, Pattern<Void>)>
Somewhere, these Voids would need to be ignored so that we can work with just Date. But maybe, as you said, variadic generics will come with the tools needed to do just that?