In FalsePredicate the INSTANCE singleton is defined as Predicate<Object>. In other predicates such as TruePredicate it's
defined as Predicate<?>. In both cases this prevents the declaration of:
This will fail to compile.
I suggest declaring the INSTANCE fields as an ungenerified Predicate, such that the above example compiles with an unchecked warning.