docs: def startsafter(self, other):
          """
          Test if this range starts after `other`. `other` may be either range or
          scalar. This only takes the lower end of the ranges into consideration.
          If the scalar or the lower end of the given range is greater than or
          equal to this range's lower end, ``True`` is returned.
  
              >>> intrange(1, 5).startsafter(0)
              True
              >>> intrange(1, 5).startsafter(intrange(0, 5))
              True
  
          If ``other`` has the same start as the given
  
          :param other: Range or scalar to test.
          :return: ``True`` if this range starts after `other`, otherwise ``False``
          :raises TypeError: If `other` is of the wrong type.
          """
  
          if self.is_valid_range(other):
              if self.lower == other.lower:
                  return other.lower_inc or not self.lower_inc
              elif self.lower_inf:
                  return False
              elif other.lower_inf:
                  return True
              else:
                  return self.lower > other.lower
          elif self.is_valid_scalar(other):
              return self.lower >= other
          else:
              raise TypeError(
                  "Unsupported type to test for starts after '{}'".format(
                      other.__class__.__name__))