However, as our example demonstrates, it requires a binary predicate even if you need only a unary
predicate.
The consequence is that if you have an ordinary unary predicate, such as
bool isPrime (int elem);
you either have to change the signature of your function or write a simple wrapper