anchor.diff:            ${lib.optionalString (ghc.isGhcjs or false)
               ''--set NODE_PATH "${ghc.socket-io}/lib/node_modules"''
             } \
  -          ${lib.optionalString withLLVM ''--prefix "PATH" ":" "${llvm}"''}
  +          ${lib.optionalString useLLVM ''--prefix "PATH" ":" "${llvm}"''}
         fi
       done
   
  
positive.code: { lib, stdenv, ghc, llvmPackages, packages, symlinkJoin, makeWrapper
  # Include LLVM by default if GHC doesn't have native code generation support
  # See https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms
  , withLLVM ? !(lib.any lib.id ([
      stdenv.targetPlatform.isx86
      stdenv.targetPlatform.isPowerPC
      stdenv.targetPlatform.isSparc
  
negative.code:                   ([ llvmPackages.llvm ]
                     ++ lib.optional stdenv.targetPlatform.isDarwin llvmPackages.clang);
  in
  if paths == [] && !useLLVM then ghc else
  symlinkJoin {
    # this makes computing paths from the name attribute impossible;
    # if such a feature is needed, the real compiler name should be saved
  