void (@NotNull Language language) { synchronized (instanceLock) { dialects = dialects.remove(language); } for (Language baseLanguage = this; baseLanguage != null; baseLanguage = baseLanguage.getBaseLanguage()) { synchronized (baseLanguage.instanceLock) { baseLanguage.transitiveDialects = baseLanguage.transitiveDialects.remove(language); } } }