o que faz (template) religar <> fazer?

tentando aprender mais sobre como a biblioteca padrão é realmente implementada Estou inspecionando todos os contêineres no visual studio .. Aqui eu vejo uma estrutura curiosa:

Em alguma classe base de umstd::list<>&nbsp;O seguinte typedef é encontrado

typedef typename _Alloc::template rebind<_Ty>::other _Alty;

Onde "_Alloc" corresponde ao argumento do modelo de alocador (e _Ty o tipo contido). Tenho dificuldade em encontrar uma boa explicação para esta "palavra-chave". A melhor coisa que encontrei até agora é que faz parte da interface do alocador. Embora mesmocppreferência&nbsp;não é muito bom em explicar isso.

O que istotemplate rebind<>&nbsp;Faz? E por que é necessário naquele local?