However.... the addValue is still one that I think needs to be
considered as a special case. People should NOT use that method. It
screws things up.
We could keep the public method and change it to throw a
RuntimeException of some kind; and then use a package private method
with a different name. How does that sound?
I like, but also deprecate the method and explain in the deprecation
warning why it's evil and why it's only there for compatibility (a la the
doc for Thread.stop() in the JDK). Have the RuntimeException include the
deprecation warning in its message too.