... and another... struct S(L...) { enum N = L[0]; S!(N) me() { return this; } } alias S!(1) S2; annoy.d(3): Error: template instance annoy.S!(N) recursive expansion