fix comparison operators and properly define them for each type