anchor.diff:      });
   
     passthru = rec {
  -
  +    spirv-llvm-translator = llvmPkgs.spirv-llvm-translator;
  +    llvm = addPatches "llvm" llvmPkgs.llvm;
       libclang = addPatches "clang" llvmPkgs.libclang;
   
       clang-unwrapped = libclang.out;
  
positive.code:   in
      stdenv.mkDerivation rec {
        pname = "opencl-clang";
        version = "unstable-2019-08-16";
  
        inherit passthru;
  
        src = fetchFromGitHub {
          owner = "intel";
          repo = "opencl-clang";
          rev = "94af090661d7c953c516c97a25ed053c744a0737";
          sha256 = "05cg89m62nqjqm705h7gpdz4jd4hiczg8944dcjsvaybrqv3hcm5";
        };
  
        patches = [
  
negative.code:     patchesOut = stdenv.mkDerivation rec {
        pname = "opencl-clang-patches";
        inherit (library) version src patches;
        # Clang patches assume the root is the llvm root dir
        # but clang root in nixpkgs is the clang sub-directory
        postPatch = ''
          for filename in patches/clang/*.patch; do
            substituteInPlace "$filename" \
              --replace "a/clang/" "a/" \
              --replace "b/clang/" "b/"
          done
        '';
  
        installPhase = ''
          [ -d patches ] && cp -r patches/ $out || mkdir $out
          mkdir -p $out/clang $out/llvm
        '';
      };
    };
  
    library = let
  