Now I wonder how will runtime template instantiation work.
it is not really difficult, but it a bit of work to make it run for example you when you use List<T> you are going to use a specialization of the template such as List<int> which is not template anymore.