public static func buildPartialBlock<W0, W1, C0, C1, R0: RegexComponent, R1: RegexComponent>( accumulated: R0, next: R1 ) -> Regex<(Substring, C0, C1)> where R0.Output == W0, R1.Output == (W1, C0, C1) { .init(node: accumulated.regex.root.appending(next.regex.root)) } public static func buildPartialBlock<W0, W1, C0, C1, C2, R0: RegexComponent, R1: RegexComponent>( accumulated: R0, next: R1 ) -> Regex<(Substring, C0, C1, C2)> where R0.Output == W0, R1.Output == (W1, C0, C1, C2) { .init(node: accumulated.regex.root.appending(next.regex.root)) } ...