X>template<typename T> X>struct type<T>::impl {}; X>
template<typename T> template<typename A> struct type<T>::impl {};