anchor.diff:  
       nativeBuildInputs = [
         pkgconfig flex bison libxslt
  -    ] ++ lib.optional (stdenv.isDarwin && (atLeast "0.38")) expat
  +    ] ++ lib.optional (stdenv.isDarwin && (lib.versionAtLeast version "0.38")) expat
         ++ lib.optional disableGraphviz autoreconfHook # if we changed our ./configure script, need to reconfigure
         ++ extraNativeBuildInputs;
   
       buildInputs = [
         glib libiconv libintl
  -    ] ++ lib.optional (atLeast "0.38" && withGraphviz) graphviz
  +    ] ++ lib.optional (lib.versionAtLeast version "0.38" && withGraphviz) graphviz
         ++ extraBuildInputs;
   
       enableParallelBuilding = true;
   
       doCheck = false; # fails, requires dbus daemon
  +
  +    # Wait for PR #59372
  +    #passthru = {
  +    #  updateScript = gnome3.updateScript {
  +    #    attrPath = "${pname}_${lib.versions.major version}_${lib.versions.minor version}";
  +    #    packageName = pname;
  +    #  };
  +    #};
   
       meta = with stdenv.lib; {
         description = "Compiler for GObject type system";
  
positive.code:         #     0.42.4: https://github.com/openembedded/openembedded-core/raw/f2b4f9ec6f44dced7f88df849cca68961419eeb8/meta/recipes-devtools/vala/vala/disable-graphviz.patch
          "0.44" = ./disable-graphviz-0.44.1.patch;
  
        }.${major} or (throw "no graphviz patch for this version of vala");
  
      disableGraphviz = atLeast "0.38" && !withGraphviz;
  
    in stdenv.mkDerivation rec {
      name = "vala-${version}";
      version = "${major}.${minor}";
  
      setupHook = substituteAll {
        src = ./setup-hook.sh;
        apiVersion = major;
      };
  
      src = fetchurl {
        url = "mirror://gnome/sources/vala/${major}/${name}.tar.xz";
        inherit sha256;
      };
  
  
negative.code: 
  in rec {
    vala_0_36 = generic {
      version = "0.36.19";
      sha256 = "05si2f4zjvq0q3wqfh1wxdq20jy1xqxq2skqh8vfh2jyp355lwar";
    };
  
    vala_0_38 = generic {
      version = "0.38.10";
      sha256  = "1rdwwqs973qv225v8b5izcgwvqn56jxgr4pa3wxxbliar3aww5sw";
      extraNativeBuildInputs = [ autoconf ] ++ lib.optional stdenv.isDarwin libtool;
    };
  
    vala_0_40 = generic {
      version = "0.40.15";
      sha256 = "0mfayli159yyw6abjf6sgq41j54mr3nspg25b1kxhypcz0scjm19";
    };
  
    vala_0_42 = generic {
      version = "0.42.7";
      sha256 = "029ksbsdpl581wzy570kj4kkw8b4bizgh494c051zsvkwck55p83";
    };
  
    vala_0_44 = generic {
      version = "0.44.3";
      sha256 = "1sgas7z6y9r2mf4pxry3fx2awdnzn3vlg2sxd3hqpy2a90ib8lw5";
    };
  
  