Mutable slice over const data.
import mir.algorithm.iteration: equal; const Slice!(int*, 1) x = [1, 2].sliced; auto y = x.lightConst; // this._iterator is copied to the new slice (i.e. both point to the same underlying data) assert(x._iterator == y._iterator); assert(x.equal([1, 2])); assert(y.equal([1, 2])); // Outer const is moved to iteration type static assert(is(typeof(y) == Slice!(const(int)*, 1))); // meaning that y can be modified, even if its elements can't y.popFront; // even if x can't be modified //x.popFront; //error