code: def count(self, val):
          
          # pylint: disable=arguments-differ
          _maxes = self._maxes
  
          if not _maxes:
              return 0
  
          pos_left = bisect_left(_maxes, val)
  
          if pos_left == len(_maxes):
              return 0
  
          _lists = self._lists
          idx_left = bisect_left(_lists[pos_left], val)
          pos_right = bisect_right(_maxes, val)
  
          if pos_right == len(_maxes):
              return self._len - self._loc(pos_left, idx_left)
  
          idx_right = bisect_right(_lists[pos_right], val)
  
          if pos_left == pos_right:
              return idx_right - idx_left
  
          right = self._loc(pos_right, idx_right)
          left = self._loc(pos_left, idx_left)
  
          return right - left
docs: Return the number of occurrences of *val* in the list.