code: func NewDisk(policies Policies, path, namespace string) (Cache, error) {
  	if !filepath.IsAbs(path) {
  		return nil, errors.New("must use absolute path")
  	}
  	d := &disk{
  		policies: policies,
  		path:     path,
  		h:        isolated.GetHash(namespace),
  		lru:      makeLRUDict(namespace),
  	}
  	p := d.statePath()
  	f, err := os.Open(p)
  	if err == nil {
  		defer f.Close()
  		err = json.NewDecoder(f).Decode(&d.lru)
  	} else if os.IsNotExist(err) {
  		// The fact that the cache is new is not an error.
  		err = nil
  	}
  	return d, err
  }
docs: // NewDisk creates a disk based cache.
  //
  // It may return both a valid Cache and an error if it failed to load the
  // previous cache metadata. It is safe to ignore this error.