code: func (l *blocksLRU) prepareForAdd() {
  	switch {
  	case l.ll.Len() > l.capacity:
  		panic("impossible")
  	case l.ll.Len() == l.capacity:
  		oldest := l.ll.Remove(l.ll.Back()).(block)
  		delete(l.blocks, oldest.offset)
  		l.evicted(oldest)
  	}
  }
docs: // prepareForAdd removes oldest item from the list if it is at the capacity.
  //
  // Does nothing if it's not yet full.