Generality creep
    Andrei Alexandrescu 
    SeeWebsiteForEmail at erdani.org
       
    Thu Mar 28 11:12:11 UTC 2019
    
    
  
On 3/28/19 4:52 AM, Walter Bright wrote:
> A topical example:
> 
> https://github.com/dlang/phobos/pull/6346#issuecomment-477504005
See also the related issue: https://issues.dlang.org/show_bug.cgi?id=18657
Indeed so, thanks. The entire thing with ranges whereby save() does 
something else than a mere copy has been a mistake and supporting it has 
been an expensive distraction.
The intent of save() was as a mere flag to signal that the range is a 
forward range and not an input range. It should have been a simpler 
policy - e.g. ranges that advertise being forward ranges would define 
this inside:
enum bool isForward = true;
Ranges should have one of two categories:
* for input ranges, all copies share and advance the same underlying 
position;
* for forward ranges, each copy holds its own position.
Anything else is not a range.
There's a lot of good stuff in Phobos, and then there's a lot of fat 
added to support an ill-intended notion of generality.
    
    
More information about the Digitalmars-d
mailing list