Thanks for bringing this up. Improving range semantics is something we should not pass up the opportunity for with Phobos3. (I consider Phobos1 the D1 version, Phobos2 the one we have currently.) Another thing that should be visited is the ability to lock/unlock a range. For example, a range that represents stdout needs to be lockable.