CompareType, DataType, and Result aren't directly used externally, so these can have their definitions moved into the cpp file.