code: def bisect_left(self, val):
          
          _maxes = self._maxes
  
          if not _maxes:
              return 0
  
          pos = bisect_left(_maxes, val)
  
          if pos == len(_maxes):
              return self._len
  
          idx = bisect_left(self._lists[pos], val)
  
          return self._loc(pos, idx)
docs: Similar to the *bisect* module in the standard library, this returns an
          appropriate index to insert *val*. If *val* is already present, the
          insertion point will be before (to the left of) any existing entries.