code: func (k *Store) loadAndMergeIfNeeded() error {
  	stat, err := os.Stat(k.filename)
  	if err != nil {
  		if os.IsNotExist(err) {
  			return nil // missing is OK
  		}
  		return err
  	}
  	// Do nothing if empty file
  	if stat.Size() == 0 {
  		return nil
  	}
  
  	f, err := os.OpenFile(k.filename, os.O_RDONLY, 0664)
  	if err == nil {
  		defer f.Close()
  		return k.loadAndMergeReaderIfNeeded(f)
  	} else {
  		return err
  	}
  }
docs: // Reads as little as possible from the passed in file to determine if the
  // contents are different from the version already held. If so, reads the
  // contents and merges with any outstanding changes. If not, stops early without
  // reading the rest of the file