Example: ref int getAsRef(int a) @safe //Magic! { RefCounted!int rc = a; return rc.getPayload(); } I wouldn't want to be on the calling end of this "safe" function...