docs: def overwrite(self, bs, pos=None):
          """Overwrite with bs at bit position pos.
  
          bs -- The bitstring to overwrite with.
          pos -- The bit position to begin overwriting from.
  
          Raises ValueError if pos < 0 or pos + bs.len > self.len
  
          """
          bs = Bits(bs)
          if not bs.len:
              return
          if pos is None:
              try:
                  pos = self._pos
              except AttributeError:
                  raise TypeError("overwrite require a bit position for this type.")
          if pos < 0:
              pos += self.len
          if pos < 0 or pos + bs.len > self.len:
              raise ValueError("Overwrite exceeds boundary of bitstring.")
          self._overwrite(bs, pos)
          try:
              self._pos = pos + bs.len
          except AttributeError:
              pass