Almost every specialization of ItemRepositoryFor class template defines a public static member function init() with the same trivial definition. Replace the duplicated init() with LockedItemRepository::initialize(). The refactoring reveals that ItemRepositoryFor<IndexedString>::init() was unused. init() was also missing from item repositories for IndexedIdentifier, IndexedQualifiedIdentifier and IndexedInstantiationInformation. I don't know if this lack of initialization of Indexed* repositories is fine or a potential bug.