corrected predicate vs function