def METHOD_NAME(self) -> Sequence[str]:
    if self._definition_names:
        return self._definition_names
    lazy_names = []
    for definition in self._get_lazy_definitions():
        strict_definition = self._definitions.get(definition.name)
        if strict_definition:
            check.invariant(
                strict_definition == definition,
                f"Duplicate definition found for {definition.name}",
            )
        else:
            lazy_names.append(definition.name)
    self._definition_names = list(self._definitions.keys()) + lazy_names
    return self._definition_names