code: def sar(self, count):
          
          count = operator.index(count)
          if count < 0:
              raise ValueError('negative shift')
          if count > self._width:
              count = self._width
          return BinWord(self._width, self.to_sint() >> count, trunc=True)
docs: Performs an arithmetic right-shift of a BinWord by the given number
          of bits.  Bits shifted out of the word are lost.  The word is
          filled on the left with copies of the top bit.
  
          The shift count can be an arbitrary non-negative number, including
          counts larger than the word (a word filled with copies of the sign bit
          is returned in this case).