From his comments in the std.compress thread, Walter seems to
believe that private symbols are not visible. This is not the
case, and has never been the case. In current DMD, private
symbols will name conflict with public symbols from other modules.
This has been discussed several times, and Dicebot has put
together a proposal in DIP22.
http://wiki.dlang.org/DIP22
I want to open this up again because the previous thread died off
with no conclusion. I urge Walter/Andrei to approve this if they
are happy with it so that the compiler devs have the greenlight
to put the fix in. It has been a longstanding issue with the
language, and your approval is the only thing blocking it from
finally being resolved.