I think that this whole section should be rewritten to use `TypeTuple` with `foreach`. The code is identical save for the types and the variable names, making it trivial to use a static `foreach` to avoid code duplication.