add predicate macro