@NotNull
  protected static Language narrowLanguage(@NotNull Language language, @NotNull Language candidate) {
    return candidate.isKindOf(language) ? candidate : language;
  }
@NotNull
  protected static Language narrowLanguage(@NotNull Language language, @NotNull Language candidate)