predicate merge combinators