code: func NewLoaderFromSnapshot(snap *Snapshot) *Loader {
  	fs := snapshotFS{snap}
  	parser := configs.NewParser(fs)
  
  	ret := &Loader{
  		parser: parser,
  		modules: moduleMgr{
  			FS:         afero.Afero{Fs: fs},
  			CanInstall: false,
  			manifest:   snap.moduleManifest(),
  		},
  	}
  
  	return ret
  }
docs: // NewLoaderFromSnapshot creates a Loader that reads files only from the
  // given snapshot.
  //
  // A snapshot-based loader cannot install modules, so calling InstallModules
  // on the return value will cause a panic.
  //
  // A snapshot-based loader also has access only to configuration files. Its
  // underlying parser does not have access to other files in the native
  // filesystem, such as values files. For those, either use a normal loader
  // (created by NewLoader) or use the configs.Parser API directly.