If we have type Specific PredicateFunctions (ex: IntPredicateFunction, LongPredicateFunction) we avoid the need for boxing primitive types