What about mutable references to immutable/shared/const classes? class A {} immutable(A)[int] aa; aa[1] = new immutable A; // doesn't compile Rebindable!(immutable(A))[int]; // looks like ugly shamefull workaround.