Although, I think it is problematic to have the region end be exclusive. Or, at least, the distance function doesn't reflect this reality. Specifically:

r = region(0, 1L, 6L)
pStart = position(0, 1L)
pEnd = position(0, 6L)

r.distance(pStart) --> 0
r.distance(pEnd) --> 0

If the region end is exclusive, one would expect the r.distance(pEnd) call to return 1.