code: func (o Output) Compare(dir string) (changed, unchanged []string) {
  	for _, name := range o.Files() {
  		path := filepath.Join(dir, filepath.FromSlash(name))
  		if bytes.Equal(fileDigest(path), blobDigest(o.Data[name])) {
  			unchanged = append(unchanged, name)
  		} else {
  			changed = append(changed, name)
  		}
  	}
  	return
  }
docs: // Compare compares files on disk to what's in the output.
  //
  // Returns names of files that are different ('changed') and same ('unchanged').
  //
  // Files on disk that are not in the output set are totally ignored. Files that
  // cannot be read are considered outdated.