defined the Predicate type, and the Comparison type