anchor.diff: -{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, cmdliner }:
  +{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, cmdliner
  +, cmdlinerSupport ? lib.versionAtLeast cmdliner.version "1.1"
  +}:
  +
   let
     pname = "uunf";
     webpage = "https://erratique.ch/software/${pname}";
  -  version = "14.0.0";
  +  version = "15.0.0";
   in
   
   if lib.versionOlder ocaml.version "4.03"
  
positive.code: 
    src = fetchurl {
      url = "${webpage}/releases/${pname}-${version}.tbz";
      sha256 = "sha256:17wv0nm3vvwcbzb1b09akw8jblmigyhbfmh1sy9lkb5756ni94a2";
    };
  
    nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
    buildInputs = [ topkg uutf cmdliner ];
  
    propagatedBuildInputs = [ uchar ];
  
  
negative.code: 
    prePatch = lib.optionalString stdenv.isAarch64 "ulimit -s 16384";
  
    buildPhase = ''
      runHook preBuild
      ${topkg.run} build \
        --with-uutf true \
        --with-cmdliner ${lib.boolToString cmdlinerSupport}
      runHook postBuild
    '';
  
    inherit (topkg) installPhase;
  
    meta = with lib; {
      description = "An OCaml module for normalizing Unicode text";
  