anchor.diff:    writeHaskell = name: {
       libraries ? [],
       ghc ? pkgs.ghc,
  -    ghcArgs ? []
  +    ghcArgs ? [],
  +    strip ? true
     }:
       makeBinWriter {
         compileScript = ''
  
positive.code:         ${ghc.withPackages (_: libraries )}/bin/ghc ${lib.escapeShellArgs ghcArgs} tmp.hs
          mv tmp $out
        '';
      } name;
  
    # writeHaskellBin takes the same arguments as writeHaskell but outputs a directory (like writeScriptBin)
    writeHaskellBin = name:
      writeHaskell "/bin/${name}";
  
    # writeJS takes a name an attributeset with libraries and some JavaScript sourcecode and
    # returns an executable
  
negative.code:             -x c \
              "$contentPath"
        '';
        inherit strip;
      } name;
  
    # writeCBin takes the same arguments as writeC but outputs a directory (like writeScriptBin)
  