You might want to allow const(invariant(int)*)* p; p is a mutable pointer to a const pointer to an invariant int. Since invariant is "stronger" than const, you want to be able to do const(invariant(...)), but not invariant(const(...))