Is it possible and a good idea to change the D ABI to make code like this avoid an array copy in 100% of the cases (without inlining)? ubyte[1000] foo() nothrow @safe { typeof(return) data; // some code here. return data; } void main() nothrow { immutable data = foo(); } Bye, bearophile