hunk.code_window:     const saveType = getSaveType(opts)
       newPkg = await save(
         pkgJsonPath,
         pkgs.map(dep => ({
           name: dep.pkg.name,
           saveSpec: getSaveSpec(
             R.find(spec => spec.raw === dep.specRaw, packagesToInstall),
             dep,
             opts.saveExact)
         })),
         saveType
       )
     }
  
hunk.labels: keep keep keep replace replace replace replace replace replace replace keep keep keep keep
hunk.after_edit:       <any>pkgs.map(dep => { // tslint:disable-line
           const spec: PackageSpec = R.find(spec => spec.raw === dep.specRaw, newSpecs)
           if (!spec) return null
           return {
             name: dep.pkg.name,
             saveSpec: getSaveSpec(spec, dep, opts.saveExact)
           }
         }).filter(Boolean),
  
hunk.file_path: src/api/install.ts
hunk.type: replace
file: # Ied
  
  ied is built on a very similar premise. `pnpm` takes huge inspiration from ied.
  
  Unlike ied, however:
  
  - pnpm aims to achieve compatibility with npm utilities (eg, shrinkwrap), and so deviates from ied's store schema (see [§ Design](#design)).
  - pnpm has a different (but still very similar) store layout than ied.
  