On Friday, November 16, 2012 13:55:31 H. S. Teoh wrote: > I don't like the prospect of > having to duplicate parts of std.algorithm just because I have some code > that produces transient ranges -- I *know* I'm never going to need to > use algorithms on them that can't handle transience anyway. It's Not > Nice to be forced to duplicate code just because an arbitrary decision > was made to ban transience, or just because some leaky type inference > decided my range was transient when it's not, etc..
The problem is that supporting transience complicates ranges even further, and they're already too complicated. And supporting every possible use case is likely to require yet further modifications to ranges, complicating them even further. We have to draw the line somewhere. I have found reference type ranges to be very useful upon occasion to the point that not having them would be a major problem for some code, but if we were to start from scratch, I'd probably still argue against allowing them and just get rid of save entirely, because it's caused us a lot of problems. I really don't want to see ranges complicated even further. - Jonathan M Davis