actually, we can use "T0[T.length]ret=void;" instead of "T0[T.length]ret;" inside the definition of S. It doesn't make a difference for ldc which optimizes it away, but it does for dmd (which is also about 10x slower than ldc).