```
template<class... TTypes, class... UTypes>
constexpr bool operator==(const tuple<TTypes...>& t, const tuple<UTypes...>& u);
```

```
template<class... TTypes, class... UTypes>
constexpr common_comparison_category_t<
```*synth-three-way-result*<TTypes, UTypes>...>
operator<=>(const tuple<TTypes...>& t, const tuple<UTypes...>& u);

Otherwise, equivalent to:
if (auto c = *synth-three-way*(get<0>(t), get<0>(u)); c != 0) return c;
return <=> ;
where for some tuple r
is a tuple containing all but the first element of r.