<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def grounded_slot_range(self, slot: Optional[Union[SlotDefinition, Optional[str]]]) -> str: """ Chase the slot range to its final form @param slot: slot to check @return: name of resolved range """

        if slot is not None and not isinstance(slot, str):
            slot = slot.range
        if slot is None:
            return DEFAULT_BUILTIN_TYPE_NAME         # Default type name
        elif slot in builtin_names:
            return slot
        elif slot in self.schema.types:
            return self.grounded_slot_range(self.schema.types[slot].typeof)
        else:
            return slot