We do an awful lot of nominal type-determination based on JCR mixins. Most of this happens via static methods with responsibility for a single type or a few types, with boolean result. Often these methods are wrapped in Guava Predicate<>s for operation over collections or Iterator<>s. It might be worth developing a clean and readable micro-framework around Hamcrest matchers for type-determination that would make it easy to find the right test or predicate for a particular task. But it might be more work than is worthwhile. This ticket is to find out which. The result will either be nothing or another ticket for the actual construction and integration of such a micro-framework.