code: func NewLRU(size int, onEvict EvictCallback) (*LRU, error) {
  	if size <= 0 {
  		return nil, errors.New("Must provide a positive size")
  	}
  	c := &LRU{
  		size:      size,
  		evictList: list.New(),
  		items:     make(map[interface{}]*list.Element),
  		onEvict:   onEvict,
  	}
  	return c, nil
  }
docs: // NewLRU constructs an LRU of the given size