anchor.diff:    confDirs ? [],
     pluginPkgs ? [],
     localConfig ? "",
  -  shellAliases ? {}
  +  shellAliases ? {},
  +  runtimeInputs ? []
   }:
   
   let
  
positive.code: { lib, writeShellScriptBin, fish, writeTextFile }:
  
  lib.makeOverridable ({
    completionDirs ? [],
  
negative.code:     ++ (map (vendorDir "conf") pluginPkgs)
      ++ (map (vendorDir "conf") [ localFishConfig shellAliasesFishConfig ]);
  
  in writeShellApplication {
    inherit runtimeInputs;
    name = "fish";
    text = ''
      ${fish}/bin/fish --init-command "
        set --prepend fish_complete_path ${lib.escapeShellArgs complPath}
        set --prepend fish_function_path ${lib.escapeShellArgs funcPath}
        set --local fish_conf_source_path ${lib.escapeShellArgs confPath}
        for c in \$fish_conf_source_path/*; source \$c; end
      " "$@"
    '';
  })
  