BCS wrote: > IIRC D allows "return exp;" in a void function because it avoids special > cases in template code. > > ReturnTypeOf!(AFn, T) fn(T)(T t) > { > return AFn(t,t); // AFn might return void > } Yes, that's exactly why.