Simplified internal visitor interface
Added equality and relational operators. Reimplemented hash support on top of the public interface.