template<typename T>
struct Loop {
template<typename U>
struct X{
using type =typename Loop<X>::type;
};
using type = typename X<T>::type;
int main()
{
Loop<int>::type;
}