anchor.diff: -{lib, stdenv, fetchFromGitHub, ocamlPackages, fontschumachermisc, xset, makeWrapper, ncurses, gnugrep, fetchpatch
  +{lib, stdenv, fetchFromGitHub, ocamlPackages, fontschumachermisc, xset, makeWrapper, ncurses, gnugrep, fetchpatch, copyDesktopItems, makeDesktopItem
   , enableX11 ? true}:
   
   let inherit (ocamlPackages) ocaml lablgtk; in
  
positive.code: 
    preInstall = "mkdir -p $out/bin";
  
    postInstall = if enableX11 then ''
      for i in $(cd $out/bin && ls); do
        wrapProgram $out/bin/$i \
          --run "[ -n \"\$DISPLAY\" ] && (${xset}/bin/xset q | ${gnugrep}/bin/grep -q \"${fontschumachermisc}\" || ${xset}/bin/xset +fp \"${fontschumachermisc}/lib/X11/fonts/misc\")"
      done
    '' else "";
  
    dontStrip = !ocaml.nativeCompilers;
  
    meta = {
      homepage = "https://www.cis.upenn.edu/~bcpierce/unison/";
  
negative.code:     sha256 = "sha256-42hmdMwOYSWGiDCmhuqtpCWtvtyD2l+kA/bhHD/Qh5Y=";
    };
  
    nativeBuildInputs = [ makeWrapper ] ++ (lib.lists.optional enableX11 copyDesktopItems);
    buildInputs = [ ocaml ncurses ];
  
    patches = [
  