docs: def reverse(self, start=None, end=None):
          """Reverse bits in-place.
  
          start -- Position of first bit to reverse. Defaults to 0.
          end -- One past the position of the last bit to reverse.
                 Defaults to self.len.
  
          Using on an empty bitstring will have no effect.
  
          Raises ValueError if start < 0, end > self.len or end < start.
  
          """
          start, end = self._validate_slice(start, end)
          if start == 0 and end == self.len:
              self._reverse()
              return
          s = self._slice(start, end)
          s._reverse()
          self[start:end] = s