def grounded_slot_range(self, slot: Optional[Union[SlotDefinition, Optional[str]]]) -> str:
if slot is not None and not isinstance(slot, str):<EOL><INDENT>slot = slot.range<EOL><DEDENT>if slot is None:<EOL><INDENT>return DEFAULT_BUILTIN_TYPE_NAME         <EOL><DEDENT>elif slot in builtin_names:<EOL><INDENT>return slot<EOL><DEDENT>elif slot in self.schema.types:<EOL><INDENT>return self.grounded_slot_range(self.schema.types[slot].typeof)<EOL><DEDENT>else:<EOL><INDENT>return slot<EOL><DEDENT>
Chase the slot range to its final form

        @param slot: slot to check
        @return: name of resolved range