code: func newlru(what string, maxItems int, new func(epoch uint64) interface{}) *lru {
  	if maxItems <= 0 {
  		maxItems = 1
  	}
  	cache, _ := simplelru.NewLRU(maxItems, func(key, value interface{}) {
  		log.Trace("Evicted ethash "+what, "epoch", key)
  	})
  	return &lru{what: what, new: new, cache: cache}
  }
docs: // newlru create a new least-recently-used cache for either the verification caches
  // or the mining datasets.