code: func NewFilesystemView(root string, blacklist []string) (FilesystemView, error) {
  	for _, b := range blacklist {
  		if _, err := filepath.Match(b, b); err != nil {
  			return FilesystemView{}, fmt.Errorf("bad blacklist pattern \"%s\"", b)
  		}
  	}
  	return FilesystemView{root: root, blacklist: blacklist}, nil
  }
docs: // NewFilesystemView returns a FilesystemView based on the supplied root and blacklist, or
  // an error if blacklist contains a bad pattern.
  // root is the the base path used by RelativePath to calulate relative paths.
  // blacklist is a list of globs of files to ignore.  See RelativePath for more information.