== method for Types should really be isequal instead
remove a couple redundant != definitions
improve documentation of comparison predicates