What I suggested in my original post didn't involve any indirection/abstraction; simply a renaming to be consistent with existing zlib (see my points A+B in my 1st post on this thread):<div><div style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)">
<br></div><div style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)">std.compress.zlib.compress</div><div style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)">
std.compress.zlib.uncompress</div><div style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)">std.compress.lzw.compress</div><div style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)">
std.compress.lzw.uncompress</div><div style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)"><br></div><div style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)">
same reason we have: std.file.write, std.stdio.write, etc, and not std.fileWrite, std.stdioWrite.</div><div style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)"><br></div>
<div class="gmail_quote">On Tue, Jun 4, 2013 at 11:18 PM, Walter Bright <span dir="ltr"><<a href="mailto:newshound2@digitalmars.com" target="_blank">newshound2@digitalmars.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 6/4/2013 9:44 PM, Max Samukha wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Tuesday, 4 June 2013 at 18:46:49 UTC, Walter Bright wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 6/4/2013 11:43 AM, Timothee Cour wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
writing generic code.<br>
same reason as why we prefer:<br>
auto y=to!double(x) over auto y=to_double(x);<br>
</blockquote>
<br>
The situations aren't comparable. The to!double case is parameterizing with a<br>
type, the compress one is not. Secondly, compress(lzw) does ABSOLUTELY NOTHING<br>
but turn around and call lzw. It adds nothing.<br>
</blockquote>
<br>
That "absolutely" based on limited personal experience is the biggest D's problem.<br>
</blockquote>
<br></div></div>
I've seen an awful lot of abstractions over the years that provided zero value.<br>
<br>
You need to provide a compelling use case to justify another layer of complexity. "generic code" is not a compelling use case. It's already generic.<br>
<br>
Note how these components are to be used:<br>
<br>
    src.lzwCompress.copy(dst);<br>
<br>
Your proposal is:<br>
<br>
    src.compress(lzw).copy(dst);<br>
<br>
I.e. zero value, as so far all compress() does is call lzw().<br>
<br>
The whole point of range-based pipeline programming is you can just plug in different components. There is no demonstrated use case for adding another layer.<br>
<br>
I am actually wrong in saying it has zero value. It has negative value :-)<br>
</blockquote></div><br></div>