void func1(scope lazy string msg) @nogc { } void func2(scope lazy string msg) @nogc { func1(msg); } What? Why is msg GC allocating, especially since I scoped the lazy? Why is msg even evaluated? Something seems off here. Thanks, Shachar