On Sunday, 11 November 2012 at 12:33:25 UTC, Manfred Nowak wrote:
a) Instantiability is decidable Why does the compiler stop with the evaluation at that randomly choosen and apparently hard coded value of 500 recursive expansions?
It's not decidable. Consider use of static if. It's Turing complete. I can give an example if you like.
b) Instantiability is not decidable Why does the compiler even try to instantiate more than the indeed needed type `Elem!0'? I miss the rationale for this behaviour.
As David says, it's needed for TypeInfo etc.