pub trait LanguageElementId {
// Required methods
fn module_file_id(&self, db: &dyn DefsGroup) -> ModuleFileId;
fn untyped_stable_ptr(&self, db: &dyn DefsGroup) -> SyntaxStablePtrId;
fn stable_location(&self, db: &dyn DefsGroup) -> StableLocation;
// Provided methods
fn parent_module(&self, db: &dyn DefsGroup) -> ModuleId { ... }
fn file_index(&self, db: &dyn DefsGroup) -> FileIndex { ... }
}