private boolean isSubtypeOf(Element element) {
      Objects.requireNonNull(element, "element");
      final TypeMirror maybeSuperType = element.asType();
      return types.isSubtype(erasure, types.erasure(maybeSuperType));
    }
Creates several matchers programmatically based on {@link ValueAttribute}.
{@code StringMatcher}, {@code WithMatcher}, {@code NotMatcher} etc.
value-processor/src/org/immutables/value/processor/meta/CriteriaModel.java