code: func DeepParseDeps(r io.Reader) (map[string][]string, error) {
  	providedBy, requires, err := ParseDeps(r)
  	if err != nil {
  		return nil, err
  	}
  	filesDeps := make(map[string][]string)
  	var deeperDeps func(namespace string) []string
  	deeperDeps = func(namespace string) []string {
  		if jsdeps, ok := filesDeps[namespace]; ok {
  			return jsdeps
  		}
  		jsfiles := []string{providedBy[namespace]}
  		for _, dep := range requires[namespace] {
  			jsfiles = append(jsfiles, deeperDeps(dep)...)
  		}
  		return jsfiles
  	}
  	for namespace := range providedBy {
  		filesDeps[namespace] = deeperDeps(namespace)
  	}
  	return filesDeps, nil
  }
docs: // DeepParseDeps reads closure namespace dependency lines and
  // returns a map giving all the required js files for each namespace.