anchor.diff:  
         boot = {
           kernelModules = [ "spl" "zfs" ] ;
  -        extraModulePackages = [ splPkg zfsPkg ];
  +        extraModulePackages = [ splKernelPkg zfsKernelPkg ];
         };
   
         boot.initrd = mkIf inInitrd {
           kernelModules = [ "spl" "zfs" ];
           extraUtilsCommands =
             ''
  -            cp -v ${zfsPkg}/sbin/zfs $out/bin
  -            cp -v ${zfsPkg}/sbin/zdb $out/bin
  -            cp -v ${zfsPkg}/sbin/zpool $out/bin
  -            cp -pdv ${zfsPkg}/lib/lib*.so* $out/lib
  +            cp -v ${zfsUserPkg}/sbin/zfs $out/bin
  +            cp -v ${zfsUserPkg}/sbin/zdb $out/bin
  +            cp -v ${zfsUserPkg}/sbin/zpool $out/bin
  +            cp -pdv ${zfsUserPkg}/lib/lib*.so* $out/lib
               cp -pdv ${pkgs.zlib}/lib/lib*.so* $out/lib
             '';
           postDeviceCommands = concatStringsSep "\n" ([''
  
positive.code:         zfsSupport = true;
        };
  
        environment.etc."zfs/zed.d".source = "${zfsPkg}/etc/zfs/zed.d/*";
  
        system.fsPackages = [ zfsPkg ];                  # XXX: needed? zfs doesn't have (need) a fsck
        environment.systemPackages = [ zfsPkg ];
        services.udev.packages = [ zfsPkg ];             # to hook zvol naming, etc.
        systemd.packages = [ zfsPkg ];
  
        systemd.services = let
          getPoolFilesystems = pool:
  
negative.code: 
    kernel = config.boot.kernelPackages;
  
    splKernelPkg = if cfgZfs.useGit then kernel.spl_git else kernel.spl;
    zfsKernelPkg = if cfgZfs.useGit then kernel.zfs_git else kernel.zfs;
    zfsUserPkg = if cfgZfs.useGit then pkgs.zfs_git else pkgs.zfs;
  
    autosnapPkg = pkgs.zfstools.override {
      zfs = zfsUserPkg;
    };
  
    zfsAutoSnap = "${autosnapPkg}/bin/zfs-auto-snapshot";
  