code: func FileSystemLoader(root string) Loader {
  	root, err := filepath.Abs(root)
  	if err != nil {
  		panic(err)
  	}
  	return func(path string) (_ starlark.StringDict, src string, err error) {
  		abs := filepath.Join(root, filepath.FromSlash(path))
  		rel, err := filepath.Rel(root, abs)
  		if err != nil {
  			return nil, "", errors.Annotate(err, "failed to calculate relative path").Err()
  		}
  		if strings.HasPrefix(rel, ".."+string(filepath.Separator)) {
  			return nil, "", errors.New("outside the package root")
  		}
  		body, err := ioutil.ReadFile(abs)
  		if os.IsNotExist(err) {
  			return nil, "", ErrNoModule
  		}
  		return nil, string(body), err
  	}
  }
docs: // FileSystemLoader returns a loader that loads files from the file system.