matrix.d is now @safe pure nothrow