whole_func_string: function resolveTreeGreedy (module, opts, cb) {
      if(!cb) cb = opts, opts = null
  
      opts = opts || {}
      opts.filter = function (pkg, root) {
        if(!pkg) return
        if(!root.tree[pkg.name]) {
          root.tree[pkg.name] = pkg
          pkg.parent = root
        }
        else {
          pkg.parent.tree[pkg.name] = pkg
        }
        return pkg
      }
  
      resolveTree(module, opts, cb)
    }
func_code_string: function resolveTreeGreedy (module, opts, cb) {
      if(!cb) cb = opts, opts = null
  
      opts = opts || {}
      opts.filter = function (pkg, root) {
        if(!pkg) return
        if(!root.tree[pkg.name]) {
          root.tree[pkg.name] = pkg
          pkg.parent = root
        }
        else {
          pkg.parent.tree[pkg.name] = pkg
        }
        return pkg
      }
  
      resolveTree(module, opts, cb)
    }
func_documentation_string: install non-conflicting modules as low in the tree as possible.