const(int)[int] d; d.require(5, 7); //compile error From a semantics perspective, though, I don't think there's anything wrong with this, and 'require' could reasonably cast the const away before assigning. Am I missing anything?