There's a trick that means you only require a single invocation to generate impls for all n-tuples up to some limit: placing `impl_input_tuple!($($B:ident)*)` at the end of this expansion body to recursively create the impls for the one-shorter tuples, then you can write

```rust
impl_input_tuple!(A B C D E F)
```

And it will expand to

```rust
impl ... for (A, B, C, D, E, F) { ... }

impl ... for (A, B, C, D, E) { ... }

impl ... for (A, B, C, D) { ... }

// etc.
```