code: func (bg *Reader) cachePut(b Block) (evicted Block, retained bool) {
  	if b == nil || !b.hasData() {
  		return b, false
  	}
  	return bg.cache.Put(b)
  }
docs: // cachePut puts the given Block into the cache if it exists, it returns
  // the Block that was evicted or b if it was not retained, and whether
  // the Block was retained by the cache.