@ApiStatus.Internal
  protected void registerDialect(@NotNull Language dialect) {
    synchronized (instanceLock) {
      dialects = dialects.add(dialect);
    }
    for (Language baseLanguage = this; baseLanguage != null; baseLanguage = baseLanguage.getBaseLanguage()) {
      synchronized (baseLanguage.instanceLock) {
        baseLanguage.transitiveDialects = baseLanguage.transitiveDialects.add(dialect);
      }
    }
  }
@ApiStatus.Internal
  protected void registerDialect(@NotNull Language dialect)