Refactor the DataTypes to prevent the classes from bulking up. Move all the methods that do things with a particular instance of the type into visitor algorithms.
Decided not to completely break all the interaction between DataType and Value, but may still do it in the future. Definitely moved printValue into visitors.
Refactor the DataTypes to prevent the classes from bulking up. Move all the methods that do things with a particular instance of the type into visitor algorithms.