anchor.diff:          call vam#Scripts(l, {})
         '');
   
  +      nativeImpl = lib.optionalString (packages != null)
  +      (let
  +        link = (packageName: dir: pluginPath: "ln -sf ${pluginPath}/share/vim-plugins/* $out/pack/${packageName}/${dir}");
  +        packageLinks = (packageName: {start ? [], opt ? []}:
  +          ["mkdir -p $out/pack/${packageName}/start"]
  +          ++ (builtins.map (link packageName "start") start)
  +          ++ ["mkdir -p $out/pack/${packageName}/opt"]
  +          ++ (builtins.map (link packageName "opt") opt)
  +        );
  +        packDir = (packages:
  +          stdenv.mkDerivation rec {
  +            name = "vim-pack-dir";
  +            src = ./.;
  +            installPhase = lib.concatStringsSep
  +                             "\n"
  +                             (lib.flatten (lib.mapAttrsToList packageLinks packages));
  +          }
  +        );
  +      in
  +      ''
  +        set packpath-=~/.vim/after
  +        set packpath+=${packDir packages}
  +        set packpath+=~/.vim/after
  +      '');
  +
         # somebody else could provide these implementations
         vundleImpl = "";
   
  
positive.code:       set hidden
      '';
  
      vimrcConfig.vam.knownPlugins = pkgs.vimPlugins; # optional
      vimrcConfig.vam.pluginDictionaries = [
        # load always
  
negative.code:     in lib.uniqList { inputList = recurseNames [] names; };
  
    vimrcFile = {
      packages ? null,
      vam ? null,
      pathogen ? null,
      customRC ? ""
  