While checking the Phobos source I've found an interesting expression
cast()(result[i]) = to!(E)(e);
The 'cast()' means 'cast to mutable', e.g.
class S {}
void g(S x) {}
void main() {
const S s;
g(cast()s);
}
But this is not documented in the D spec (CastParam cannot be empty). Is
this an "accept-invalid" bug, or just a feature not yet documented?