code: def rol(self, bits, start=None, end=None):
          
          if not self.len:
              raise Error("Cannot rotate an empty bitstring.")
          if bits < 0:
              raise ValueError("Cannot rotate left by negative amount.")
          start, end = self._validate_slice(start, end)
          bits %= (end - start)
          if not bits:
              return
          lhs = self._slice(start, start + bits)
          self._delete(bits, start)
          self._insert(lhs, end - bits)
docs: Rotate bits to the left in-place.
  
          bits -- The number of bits to rotate by.
          start -- Start of slice to rotate. Defaults to 0.
          end -- End of slice to rotate. Defaults to self.len.
  
          Raises ValueError if bits < 0.