@Contract(pure = true)
  public static @NotNull LanguageMatcher matchWithDialects(@NotNull Language language) {
    if (language instanceof MetaLanguage) {
      return new MetaLanguageKindMatcher((MetaLanguage)language);
    }
    else {
      return new LanguageKindMatcher(language);
    }
  }
@Contract(pure = true)
  public static @NotNull LanguageMatcher matchWithDialects(@NotNull Language language)