Less strict concept check in checkPredicate

Using boost::type_traits