This program compiles: void func(lazy void a) { } void main() { } It shouldn't. If a were not lazy, you'd get the error d.d(1): Error: cannot have parameter of type void It shouldn't be any more legal to have a lazy void parameter than a void parameter. It makes it seem like lazy parameters aren't properly type checked.
The spec explicitly allows it. http://www.digitalmars.com/d/1.0/function.html#parameters
Okay. Why? What possible use does it have?