code: def remove(self, index):
          
          assert index < self.count
          last_index = self.count - 1
          data = self.get(index)
  
          if index == last_index:
              # easy case - nothing to do except zero last chunk
              last_data = data
              moved = None
          else:
              last_data = self.get(last_index)
              # copy the last chunk's data over the data to be deleted
              data[0:self.chunk_size] = last_data
              moved = last_index
  
          # zero last chunk's data
          last_data[0:self.chunk_size] = [0] * self.chunk_size
          self.count -= 1
  
          # provide which index has now moved
          return moved
docs: Remove chunk at index.
  
          Doesn't actually delete data, copies last chunk's data over data to be
          removed, and decreases the count