about summary refs log tree commit diff
diff options
context:
space:
mode:
authorpjotrp2026-04-02 10:22:02 +0200
committerpjotrp2026-04-02 10:22:02 +0200
commitc1fce35e114679662209d234e3a100ce6a009995 (patch)
tree71794ce42f997053694164bb1de683d285ede166
parentf873d984352e0d76ca54ce2d3507dcd0b45c8ebc (diff)
downloadguix-bioinformatics-c1fce35e114679662209d234e3a100ce6a009995.tar.gz
Added a number of packages for cosigt/impg:
+ gfainject
+ rust-onecode
+ ragc
+ fastga-rs
+ spoa
+ impg
  gfautil
+ safestringlib
+ bwa-mem2
+ miniprot
+ pangene
+ wally
+ meryl
+ kfilt
+ cosigt
-rw-r--r--gn/packages/pangenome-rust.scm3094
-rw-r--r--gn/packages/pangenome.scm395
-rw-r--r--gn/packages/patches/do-not-build-cplusplus-spoa.patch19
3 files changed, 3506 insertions, 2 deletions
diff --git a/gn/packages/pangenome-rust.scm b/gn/packages/pangenome-rust.scm
new file mode 100644
index 0000000..1d72cfa
--- /dev/null
+++ b/gn/packages/pangenome-rust.scm
@@ -0,0 +1,3094 @@
+;;; Pangenome Rust packages: gfainject, ragc, fastga-rs, impg
+;;; and their Rust crate dependencies
+
+(define-module (gn packages pangenome-rust)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cargo)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
+  #:use-module (guix gexp)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages assembly)
+  #:use-module (gnu packages bioinformatics)
+  #:use-module (gnu packages cmake)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages llvm)
+  #:use-module (gnu packages pkg-config)
+  #:export (lookup-cargo-inputs
+            wfa2-lib/our
+            wfa2-lib-static))
+
+;;;
+;;; Crate sources (generated by: guix import crate -f Cargo.lock gfainject).
+;;;
+
+(define rust-adler-1.0.2
+  (crate-source "adler" "1.0.2"
+                "1zim79cvzd5yrkzl3nyfx0avijwgk9fqv3yrscdy1cc79ih02qpj"))
+
+(define rust-anyhow-1.0.66
+  (crate-source "anyhow" "1.0.66"
+                "1xj3ahmwjlbiqsajhkaa0q6hqwb4l3l5rkfxa7jk1498r3fn2qi1"))
+
+(define rust-autocfg-1.1.0
+  (crate-source "autocfg" "1.1.0"
+                "1ylp3cb47ylzabimazvbz9ms6ap784zhb6syaz6c1jqpmcmq0s6l"))
+
+(define rust-bit-vec-0.6.3
+  (crate-source "bit-vec" "0.6.3"
+                "1ywqjnv60cdh1slhz67psnp422md6jdliji6alq0gmly2xm9p7rl"))
+
+(define rust-bitflags-1.3.2
+  (crate-source "bitflags" "1.3.2"
+                "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy"))
+
+(define rust-btoi-0.4.2
+  (crate-source "btoi" "0.4.2"
+                "04ba4j96icaan10c613s2rwpn2kdbl8728qhz2xzi0dakyd8dh4p"))
+
+(define rust-bytemuck-1.12.3
+  (crate-source "bytemuck" "1.12.3"
+                "0zwlaqkrp7r7bnl2n40x9ncpspb93d8xcckar61f54nal7csi8xa"))
+
+(define rust-byteorder-1.4.3
+  (crate-source "byteorder" "1.4.3"
+                "0456lv9xi1a5bcm32arknf33ikv76p3fr9yzki4lb2897p2qkh8l"))
+
+(define rust-bytes-1.2.1
+  (crate-source "bytes" "1.2.1"
+                "1nsni0jbx1048inbrarn3hz6zxd000pp0rac2mr07s7xf1m7p2pc"))
+
+(define rust-cfg-if-1.0.0
+  (crate-source "cfg-if" "1.0.0"
+                "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds"))
+
+(define rust-crc32fast-1.3.2
+  (crate-source "crc32fast" "1.3.2"
+                "03c8f29yx293yf43xar946xbls1g60c207m9drf8ilqhr25vsh5m"))
+
+(define rust-crossbeam-channel-0.5.6
+  (crate-source "crossbeam-channel" "0.5.6"
+                "08f5f043rljl82a06d1inda6nl2b030s7yfqp31ps8w8mzfh9pf2"))
+
+(define rust-crossbeam-utils-0.8.12
+  (crate-source "crossbeam-utils" "0.8.12"
+                "1b0zs5ahnwkgky7svwah9fhmqx645qnb3h97cnk6q68zzb2zxfpd"))
+
+(define rust-flate2-1.0.24
+  (crate-source "flate2" "1.0.24"
+                "1xmzzg91c0hdl39qz0hwph0w629bva1dh21j3zyqp7xd4x60yazq"))
+
+(define rust-hashbrown-0.12.3
+  (crate-source "hashbrown" "0.12.3"
+                "1268ka4750pyg2pbgsr43f0289l5zah4arir2k4igx5a8c6fg7la"))
+
+(define rust-indexmap-1.9.1
+  (crate-source "indexmap" "1.9.1"
+                "07nli1wcz7m81svvig8l5j6vjycjnv9va46lwblgy803ffbmm8qh"))
+
+(define rust-lexical-core-0.8.5
+  (crate-source "lexical-core" "0.8.5"
+                "0ihf0x3vrk25fq3bv9q35m0xax0wmvwkh0j0pjm2yk4ddvh5vpic"))
+
+(define rust-lexical-parse-float-0.8.5
+  (crate-source "lexical-parse-float" "0.8.5"
+                "0py0gp8hlzcrlvjqmqlpl2v1as65iiqxq2xsabxvhc01pmg3lfv8"))
+
+(define rust-lexical-parse-integer-0.8.6
+  (crate-source "lexical-parse-integer" "0.8.6"
+                "1sayji3mpvb2xsjq56qcq3whfz8px9a6fxk5v7v15hyhbr4982bd"))
+
+(define rust-lexical-util-0.8.5
+  (crate-source "lexical-util" "0.8.5"
+                "1z73qkv7yxhsbc4aiginn1dqmsj8jarkrdlyxc88g2gz2vzvjmaj"))
+
+(define rust-lexical-write-float-0.8.5
+  (crate-source "lexical-write-float" "0.8.5"
+                "0qk825l0csvnksh9sywb51996cjc2bylq6rxjaiha7sqqjhvmjmc"))
+
+(define rust-lexical-write-integer-0.8.5
+  (crate-source "lexical-write-integer" "0.8.5"
+                "0ii4hmvqrg6pd4j9y1pkhkp0nw2wpivjzmljh6v6ca22yk8z7dp1"))
+
+(define rust-memchr-2.5.0
+  (crate-source "memchr" "2.5.0"
+                "0vanfk5mzs1g1syqnj03q8n0syggnhn55dq535h2wxr7rwpfbzrd"))
+
+(define rust-miniz-oxide-0.5.4
+  (crate-source "miniz_oxide" "0.5.4"
+                "0d2xcypr8s0skd81dhlrylas1j794qyz74snm11jc8kmy6l0nncn"))
+
+(define rust-noodles-0.29.0
+  (crate-source "noodles" "0.29.0"
+                "06y9gjsm790yfs6gbh96yncm7nrp2xmc024jqpjzjk131v75rz9h"))
+
+(define rust-noodles-bam-0.24.0
+  (crate-source "noodles-bam" "0.24.0"
+                "1fq59hngj0apcp242744kiq099xip2gxz62f9azkrcv66j670bgm"))
+
+(define rust-noodles-bgzf-0.17.0
+  (crate-source "noodles-bgzf" "0.17.0"
+                "04b22jjs3iy76zgdx239idcfzkf7b753dql5znda3gj42namhrvr"))
+
+(define rust-noodles-core-0.9.0
+  (crate-source "noodles-core" "0.9.0"
+                "1r1gywapdgvqk5ah07lnfikls58nn5m7dmbh3m05klg1fqxg4dd5"))
+
+(define rust-noodles-csi-0.11.0
+  (crate-source "noodles-csi" "0.11.0"
+                "0syl3f3aqy5g3b7l3mhhxr42zrdbnzb0n1izcakv4hwhwr74kip2"))
+
+(define rust-noodles-fasta-0.16.0
+  (crate-source "noodles-fasta" "0.16.0"
+                "1irjih7gqgykh75j0ynn6nx104jgg2y93jp4c8xjnhp8qbibjc17"))
+
+(define rust-noodles-sam-0.21.0
+  (crate-source "noodles-sam" "0.21.0"
+                "133l649g9ghs8ckaivjskfddn6rfi5f0lisb884lbhv3v92kisrc"))
+
+(define rust-num-traits-0.2.15
+  (crate-source "num-traits" "0.2.15"
+                "1kfdqqw2ndz0wx2j75v9nbjx7d3mh3150zs4p5595y02rwsdx3jp"))
+
+(define rust-pico-args-0.5.0
+  (crate-source "pico-args" "0.5.0"
+                "05d30pvxd6zlnkg2i3ilr5a70v3f3z2in18m67z25vinmykngqav"))
+
+(define rust-retain-mut-0.1.7
+  (crate-source "retain_mut" "0.1.7"
+                "11j09lp1wqwc2r9bw58my2474zj95jz5fihff3ldv3rz0g2baccc"))
+
+(define rust-roaring-0.10.1
+  (crate-source "roaring" "0.10.1"
+                "0wcgprdw49xy7w00zzspbhrq8f1kvlwqasmfxh8y1gd84vlba3zg"))
+
+(define rust-rustc-hash-1.1.0
+  (crate-source "rustc-hash" "1.1.0"
+                "1qkc5khrmv5pqi5l5ca9p5nl5hs742cagrndhbrlk3dhlrx3zm08"))
+
+(define rust-static-assertions-1.1.0
+  (crate-source "static_assertions" "1.1.0"
+                "0gsl6xmw10gvn3zs1rv99laj5ig7ylffnh71f9l34js4nr4r7sx2"))
+
+;;;
+;;; Crate sources (generated by: guix import crate -f Cargo.lock ragc-cli).
+;;;
+
+(define rust-adler2-2.0.1
+  (crate-source "adler2" "2.0.1"
+                "1ymy18s9hs7ya1pjc9864l30wk8p2qfqdi7mhhcc5nfakxbij09j"))
+
+(define rust-ahash-0.8.12
+  (crate-source "ahash" "0.8.12"
+                "0xbsp9rlm5ki017c0w6ay8kjwinwm8knjncci95mii30rmwz25as"))
+
+(define rust-aho-corasick-1.1.4
+  (crate-source "aho-corasick" "1.1.4"
+                "00a32wb2h07im3skkikc495jvncf62jl6s96vwc7bhi70h9imlyx"))
+
+(define rust-allocator-api2-0.2.21
+  (crate-source "allocator-api2" "0.2.21"
+                "08zrzs022xwndihvzdn78yqarv2b9696y67i6h78nla3ww87jgb8"))
+
+(define rust-anes-0.1.6
+  (crate-source "anes" "0.1.6"
+                "16bj1ww1xkwzbckk32j2pnbn5vk6wgsl3q4p3j9551xbcarwnijb"))
+
+(define rust-anstream-0.6.21
+  (crate-source "anstream" "0.6.21"
+                "0jjgixms4qjj58dzr846h2s29p8w7ynwr9b9x6246m1pwy0v5ma3"))
+
+(define rust-anstyle-1.0.13
+  (crate-source "anstyle" "1.0.13"
+                "0y2ynjqajpny6q0amvfzzgw0gfw3l47z85km4gvx87vg02lcr4ji"))
+
+(define rust-anstyle-parse-0.2.7
+  (crate-source "anstyle-parse" "0.2.7"
+                "1hhmkkfr95d462b3zf6yl2vfzdqfy5726ya572wwg8ha9y148xjf"))
+
+(define rust-anstyle-query-1.1.5
+  (crate-source "anstyle-query" "1.1.5"
+                "1p6shfpnbghs6jsa0vnqd8bb8gd7pjd0jr7w0j8jikakzmr8zi20"))
+
+(define rust-anstyle-wincon-3.0.11
+  (crate-source "anstyle-wincon" "3.0.11"
+                "0zblannm70sk3xny337mz7c6d8q8i24vhbqi42ld8v7q1wjnl7i9"))
+
+(define rust-anyhow-1.0.102
+  (crate-source "anyhow" "1.0.102"
+                "0b447dra1v12z474c6z4jmicdmc5yxz5bakympdnij44ckw2s83z"))
+
+(define rust-arbitrary-chunks-0.4.1
+  (crate-source "arbitrary-chunks" "0.4.1"
+                "11j0xrjcnj8zygdpwqpc9110ac6yji35lw8mx80w85k492d6in1a"))
+
+(define rust-autocfg-1.5.0
+  (crate-source "autocfg" "1.5.0"
+                "1s77f98id9l4af4alklmzq46f21c980v13z2r1pcxx6bqgw0d1n0"))
+
+(define rust-bincode-1.3.3
+  (crate-source "bincode" "1.3.3"
+                "1bfw3mnwzx5g1465kiqllp5n4r10qrqy88kdlp3jfwnq2ya5xx5i"))
+
+(define rust-bitflags-2.11.0
+  (crate-source "bitflags" "2.11.0"
+                "1bwjibwry5nfwsfm9kjg2dqx5n5nja9xymwbfl6svnn8jsz6ff44"))
+
+(define rust-block-buffer-0.10.4
+  (crate-source "block-buffer" "0.10.4"
+                "0w9sa2ypmrsqqvc20nhwr75wbb5cjr4kkyhpjm1z1lv2kdicfy1h"))
+
+(define rust-block-pseudorand-0.1.2
+  (crate-source "block-pseudorand" "0.1.2"
+                "19hm05q3nfp5akn9vkq8f09hhimsxlzd3x266xja0i6jjn23b5r0"))
+
+(define rust-bumpalo-3.20.2
+  (crate-source "bumpalo" "3.20.2"
+                "1jrgxlff76k9glam0akhwpil2fr1w32gbjdf5hpipc7ld2c7h82x"))
+
+(define rust-byteorder-1.5.0
+  (crate-source "byteorder" "1.5.0"
+                "0jzncxyf404mwqdbspihyzpkndfgda450l0893pz5xj685cg5l0z"))
+
+(define rust-cast-0.3.0
+  (crate-source "cast" "0.3.0"
+                "1dbyngbyz2qkk0jn2sxil8vrz3rnpcj142y184p9l4nbl9radcip"))
+
+(define rust-cc-1.2.56
+  (crate-source "cc" "1.2.56"
+                "1chvh9g2izhqad7vzy4cc7xpdljdvqpsr6x6hv1hmyqv3mlkbgxf"))
+
+(define rust-cfg-if-1.0.4
+  (crate-source "cfg-if" "1.0.4"
+                "008q28ajc546z5p2hcwdnckmg0hia7rnx52fni04bwqkzyrghc4k"))
+
+(define rust-chiapos-chacha8-0.1.0
+  (crate-source "chiapos-chacha8" "0.1.0"
+                "02ndd71c6j85dj2vy55ri7j9abz30x686hwf3fyc5xl579bvxy1k"))
+
+(define rust-ciborium-0.2.2
+  (crate-source "ciborium" "0.2.2"
+                "03hgfw4674im1pdqblcp77m7rc8x2v828si5570ga5q9dzyrzrj2"))
+
+(define rust-ciborium-io-0.2.2
+  (crate-source "ciborium-io" "0.2.2"
+                "0my7s5g24hvp1rs1zd1cxapz94inrvqpdf1rslrvxj8618gfmbq5"))
+
+(define rust-ciborium-ll-0.2.2
+  (crate-source "ciborium-ll" "0.2.2"
+                "1n8g4j5rwkfs3rzfi6g1p7ngmz6m5yxsksryzf5k72ll7mjknrjp"))
+
+(define rust-clap-4.5.60
+  (crate-source "clap" "4.5.60"
+                "02h3nzznssjgp815nnbzk0r62y2iw03kdli75c233kirld6z75r7"))
+
+(define rust-clap-builder-4.5.60
+  (crate-source "clap_builder" "4.5.60"
+                "0xk8mdizvmmn6w5ij5cwhy5pbgyac4w9pfvl6nqmjl7a5hql38i4"))
+
+(define rust-clap-derive-4.5.55
+  (crate-source "clap_derive" "4.5.55"
+                "1r949xis3jmhzh387smd70vc8a3b9734ck3g5ahg59a63bd969x9"))
+
+(define rust-clap-lex-1.0.0
+  (crate-source "clap_lex" "1.0.0"
+                "0c8888qi1l9sayqlv666h8s0yxn2qc6jr88v1zagk43mpjjjx0is"))
+
+(define rust-colorchoice-1.0.4
+  (crate-source "colorchoice" "1.0.4"
+                "0x8ymkz1xr77rcj1cfanhf416pc4v681gmkc9dzb3jqja7f62nxh"))
+
+(define rust-cpufeatures-0.2.17
+  (crate-source "cpufeatures" "0.2.17"
+                "10023dnnaghhdl70xcds12fsx2b966sxbxjq5sxs49mvxqw5ivar"))
+
+(define rust-crc32fast-1.5.0
+  (crate-source "crc32fast" "1.5.0"
+                "04d51liy8rbssra92p0qnwjw8i9rm9c4m3bwy19wjamz1k4w30cl"))
+
+(define rust-criterion-0.5.1
+  (crate-source "criterion" "0.5.1"
+                "0bv9ipygam3z8kk6k771gh9zi0j0lb9ir0xi1pc075ljg80jvcgj"))
+
+(define rust-criterion-plot-0.5.0
+  (crate-source "criterion-plot" "0.5.0"
+                "1c866xkjqqhzg4cjvg01f8w6xc1j3j7s58rdksl52skq89iq4l3b"))
+
+(define rust-crossbeam-0.8.4
+  (crate-source "crossbeam" "0.8.4"
+                "1a5c7yacnk723x0hfycdbl91ks2nxhwbwy46b8y5vyy0gxzcsdqi"))
+
+(define rust-crossbeam-channel-0.5.15
+  (crate-source "crossbeam-channel" "0.5.15"
+                "1cicd9ins0fkpfgvz9vhz3m9rpkh6n8d3437c3wnfsdkd3wgif42"))
+
+(define rust-crossbeam-deque-0.8.6
+  (crate-source "crossbeam-deque" "0.8.6"
+                "0l9f1saqp1gn5qy0rxvkmz4m6n7fc0b3dbm6q1r5pmgpnyvi3lcx"))
+
+(define rust-crossbeam-epoch-0.9.18
+  (crate-source "crossbeam-epoch" "0.9.18"
+                "03j2np8llwf376m3fxqx859mgp9f83hj1w34153c7a9c7i5ar0jv"))
+
+(define rust-crossbeam-queue-0.3.12
+  (crate-source "crossbeam-queue" "0.3.12"
+                "059igaxckccj6ndmg45d5yf7cm4ps46c18m21afq3pwiiz1bnn0g"))
+
+(define rust-crossbeam-utils-0.8.21
+  (crate-source "crossbeam-utils" "0.8.21"
+                "0a3aa2bmc8q35fb67432w16wvi54sfmb69rk9h5bhd18vw0c99fh"))
+
+(define rust-crunchy-0.2.4
+  (crate-source "crunchy" "0.2.4"
+                "1mbp5navim2qr3x48lyvadqblcxc1dm0lqr0swrkkwy2qblvw3s6"))
+
+(define rust-crypto-common-0.1.7
+  (crate-source "crypto-common" "0.1.7"
+                "02nn2rhfy7kvdkdjl457q2z0mklcvj9h662xrq6dzhfialh2kj3q"))
+
+(define rust-dashmap-6.1.0
+  (crate-source "dashmap" "6.1.0"
+                "1kvnw859xvrqyd1lk89na6797yvl5bri4wi9j0viz2a4j54wqhah"))
+
+(define rust-digest-0.10.7
+  (crate-source "digest" "0.10.7"
+                "14p2n6ih29x81akj097lvz7wi9b6b9hvls0lwrv7b6xwyy0s5ncy"))
+
+(define rust-either-1.15.0
+  (crate-source "either" "1.15.0"
+                "069p1fknsmzn9llaizh77kip0pqmcwpdsykv2x30xpjyija5gis8"))
+
+(define rust-equivalent-1.0.2
+  (crate-source "equivalent" "1.0.2"
+                "03swzqznragy8n0x31lqc78g2af054jwivp7lkrbrc0khz74lyl7"))
+
+(define rust-errno-0.3.14
+  (crate-source "errno" "0.3.14"
+                "1szgccmh8vgryqyadg8xd58mnwwicf39zmin3bsn63df2wbbgjir"))
+
+(define rust-fastrand-2.3.0
+  (crate-source "fastrand" "2.3.0"
+                "1ghiahsw1jd68df895cy5h3gzwk30hndidn3b682zmshpgmrx41p"))
+
+(define rust-find-msvc-tools-0.1.9
+  (crate-source "find-msvc-tools" "0.1.9"
+                "10nmi0qdskq6l7zwxw5g56xny7hb624iki1c39d907qmfh3vrbjv"))
+
+(define rust-flate2-1.1.9
+  (crate-source "flate2" "1.1.9"
+                "0g2pb7cxnzcbzrj8bw4v6gpqqp21aycmf6d84rzb6j748qkvlgw4"))
+
+(define rust-foldhash-0.1.5
+  (crate-source "foldhash" "0.1.5"
+                "1wisr1xlc2bj7hk4rgkcjkz3j2x4dhd1h9lwk7mj8p71qpdgbi6r"))
+
+(define rust-generic-array-0.14.7
+  (crate-source "generic-array" "0.14.7"
+                "16lyyrzrljfq424c3n8kfwkqihlimmsg5nhshbbp48np3yjrqr45"))
+
+(define rust-getrandom-0.3.4
+  (crate-source "getrandom" "0.3.4"
+                "1zbpvpicry9lrbjmkd4msgj3ihff1q92i334chk7pzf46xffz7c9"))
+
+(define rust-getrandom-0.4.2
+  (crate-source "getrandom" "0.4.2"
+                "0mb5833hf9pvn9dhvxjgfg5dx0m77g8wavvjdpvpnkp9fil1xr8d"))
+
+(define rust-half-2.7.1
+  (crate-source "half" "2.7.1"
+                "0jyq42xfa6sghc397mx84av7fayd4xfxr4jahsqv90lmjr5xi8kf"))
+
+(define rust-hashbrown-0.14.5
+  (crate-source "hashbrown" "0.14.5"
+                "1wa1vy1xs3mp11bn3z9dv0jricgr6a2j0zkf1g19yz3vw4il89z5"))
+
+(define rust-hashbrown-0.15.5
+  (crate-source "hashbrown" "0.15.5"
+                "189qaczmjxnikm9db748xyhiw04kpmhm9xj9k9hg0sgx7pjwyacj"))
+
+(define rust-hashbrown-0.16.1
+  (crate-source "hashbrown" "0.16.1"
+                "004i3njw38ji3bzdp9z178ba9x3k0c1pgy8x69pj7yfppv4iq7c4"))
+
+(define rust-heck-0.5.0
+  (crate-source "heck" "0.5.0"
+                "1sjmpsdl8czyh9ywl3qcsfsq9a307dg4ni2vnlwgnzzqhc4y0113"))
+
+(define rust-hermit-abi-0.5.2
+  (crate-source "hermit-abi" "0.5.2"
+                "1744vaqkczpwncfy960j2hxrbjl1q01csm84jpd9dajbdr2yy3zw"))
+
+(define rust-id-arena-2.3.0
+  (crate-source "id-arena" "2.3.0"
+                "0m6rs0jcaj4mg33gkv98d71w3hridghp5c4yr928hplpkgbnfc1x"))
+
+(define rust-indexmap-2.13.0
+  (crate-source "indexmap" "2.13.0"
+                "05qh5c4h2hrnyypphxpwflk45syqbzvqsvvyxg43mp576w2ff53p"))
+
+(define rust-is-terminal-0.4.17
+  (crate-source "is-terminal" "0.4.17"
+                "0ilfr9n31m0k6fsm3gvfrqaa62kbzkjqpwcd9mc46klfig1w2h1n"))
+
+(define rust-is-terminal-polyfill-1.70.2
+  (crate-source "is_terminal_polyfill" "1.70.2"
+                "15anlc47sbz0jfs9q8fhwf0h3vs2w4imc030shdnq54sny5i7jx6"))
+
+(define rust-itertools-0.10.5
+  (crate-source "itertools" "0.10.5"
+                "0ww45h7nxx5kj6z2y6chlskxd1igvs4j507anr6dzg99x1h25zdh"))
+
+(define rust-itoa-1.0.17
+  (crate-source "itoa" "1.0.17"
+                "1lh93xydrdn1g9x547bd05g0d3hra7pd1k4jfd2z1pl1h5hwdv4j"))
+
+(define rust-jobserver-0.1.34
+  (crate-source "jobserver" "0.1.34"
+                "0cwx0fllqzdycqn4d6nb277qx5qwnmjdxdl0lxkkwssx77j3vyws"))
+
+(define rust-js-sys-0.3.91
+  ;; TODO REVIEW: Check bundled sources.
+  (crate-source "js-sys" "0.3.91"
+                "171rzgq33wc1nxkgnvhlqqwwnrifs13mg3jjpjj5nf1z0yvib5xl"))
+
+(define rust-leb128fmt-0.1.0
+  (crate-source "leb128fmt" "0.1.0"
+                "1chxm1484a0bly6anh6bd7a99sn355ymlagnwj3yajafnpldkv89"))
+
+(define rust-libc-0.2.183
+  (crate-source "libc" "0.2.183"
+                "17c9gyia7rrzf9gsssvk3vq9ca2jp6rh32fsw6ciarpn5djlddmm"))
+
+(define rust-linux-raw-sys-0.12.1
+  ;; TODO REVIEW: Check bundled sources.
+  (crate-source "linux-raw-sys" "0.12.1"
+                "0lwasljrqxjjfk9l2j8lyib1babh2qjlnhylqzl01nihw14nk9ij"))
+
+(define rust-lock-api-0.4.14
+  (crate-source "lock_api" "0.4.14"
+                "0rg9mhx7vdpajfxvdjmgmlyrn20ligzqvn8ifmaz7dc79gkrjhr2"))
+
+(define rust-log-0.4.29
+  (crate-source "log" "0.4.29"
+                "15q8j9c8g5zpkcw0hnd6cf2z7fxqnvsjh3rw5mv5q10r83i34l2y"))
+
+(define rust-memchr-2.8.0
+  (crate-source "memchr" "2.8.0"
+                "0y9zzxcqxvdqg6wyag7vc3h0blhdn7hkq164bxyx2vph8zs5ijpq"))
+
+(define rust-miniz-oxide-0.8.9
+  (crate-source "miniz_oxide" "0.8.9"
+                "05k3pdg8bjjzayq3rf0qhpirq9k37pxnasfn4arbs17phqn6m9qz"))
+
+(define rust-nanorand-0.6.1
+  (crate-source "nanorand" "0.6.1"
+                "0n4903vzvk1ywp35x7qpf5avh4apqnjx1550w01iiakx4hsb77kj"))
+
+(define rust-num-traits-0.2.19
+  (crate-source "num-traits" "0.2.19"
+                "0h984rhdkkqd4ny9cif7y2azl3xdfb7768hb9irhpsch4q3gq787"))
+
+(define rust-num-cpus-1.17.0
+  (crate-source "num_cpus" "1.17.0"
+                "0fxjazlng4z8cgbmsvbzv411wrg7x3hyxdq8nxixgzjswyylppwi"))
+
+(define rust-once-cell-1.21.3
+  (crate-source "once_cell" "1.21.3"
+                "0b9x77lb9f1j6nqgf5aka4s2qj0nly176bpbrv6f9iakk5ff3xa2"))
+
+(define rust-once-cell-polyfill-1.70.2
+  (crate-source "once_cell_polyfill" "1.70.2"
+                "1zmla628f0sk3fhjdjqzgxhalr2xrfna958s632z65bjsfv8ljrq"))
+
+(define rust-oorandom-11.1.5
+  (crate-source "oorandom" "11.1.5"
+                "07mlf13z453fq01qff38big1lh83j8l6aaglf63ksqzzqxc0yyfn"))
+
+(define rust-parking-lot-core-0.9.12
+  (crate-source "parking_lot_core" "0.9.12"
+                "1hb4rggy70fwa1w9nb0svbyflzdc69h047482v2z3sx2hmcnh896"))
+
+(define rust-partition-0.1.2
+  (crate-source "partition" "0.1.2"
+                "1fiapzg2mnafr3zpc4w67grljk3qk1n4gh67iqmz2p2qm8x86zwl"))
+
+(define rust-pkg-config-0.3.32
+  (crate-source "pkg-config" "0.3.32"
+                "0k4h3gnzs94sjb2ix6jyksacs52cf1fanpwsmlhjnwrdnp8dppby"))
+
+(define rust-plotters-0.3.7
+  (crate-source "plotters" "0.3.7"
+                "0ixpy9svpmr2rkzkxvvdpysjjky4gw104d73n7pi2jbs7m06zsss"))
+
+(define rust-plotters-backend-0.3.7
+  (crate-source "plotters-backend" "0.3.7"
+                "0ahpliim4hrrf7d4ispc2hwr7rzkn6d6nf7lyyrid2lm28yf2hnz"))
+
+(define rust-plotters-svg-0.3.7
+  (crate-source "plotters-svg" "0.3.7"
+                "0w56sxaa2crpasa1zj0bhxzihlapqfkncggavyngg0w86anf5fji"))
+
+(define rust-prettyplease-0.2.37
+  (crate-source "prettyplease" "0.2.37"
+                "0azn11i1kh0byabhsgab6kqs74zyrg69xkirzgqyhz6xmjnsi727"))
+
+(define rust-proc-macro2-1.0.106
+  (crate-source "proc-macro2" "1.0.106"
+                "0d09nczyaj67x4ihqr5p7gxbkz38gxhk4asc0k8q23g9n85hzl4g"))
+
+(define rust-quote-1.0.45
+  (crate-source "quote" "1.0.45"
+                "095rb5rg7pbnwdp6v8w5jw93wndwyijgci1b5lw8j1h5cscn3wj1"))
+
+(define rust-r-efi-5.3.0
+  (crate-source "r-efi" "5.3.0"
+                "03sbfm3g7myvzyylff6qaxk4z6fy76yv860yy66jiswc2m6b7kb9"))
+
+(define rust-r-efi-6.0.0
+  (crate-source "r-efi" "6.0.0"
+                "1gyrl2k5fyzj9k7kchg2n296z5881lg7070msabid09asp3wkp7q"))
+
+(define rust-rayon-1.11.0
+  (crate-source "rayon" "1.11.0"
+                "13x5fxb7rn4j2yw0cr26n7782jkc7rjzmdkg42qxk3xz0p8033rn"))
+
+(define rust-rayon-core-1.13.0
+  (crate-source "rayon-core" "1.13.0"
+                "14dbr0sq83a6lf1rfjq5xdpk5r6zgzvmzs5j6110vlv2007qpq92"))
+
+(define rust-rdst-0.20.14
+  (crate-source "rdst" "0.20.14"
+                "0li77hviphwg27p2dc2v3x71lvdnc9k5ysz5snb6mdvpwns70ybf"))
+
+(define rust-redox-syscall-0.5.18
+  (crate-source "redox_syscall" "0.5.18"
+                "0b9n38zsxylql36vybw18if68yc9jczxmbyzdwyhb9sifmag4azd"))
+
+(define rust-regex-1.12.3
+  (crate-source "regex" "1.12.3"
+                "0xp2q0x7ybmpa5zlgaz00p8zswcirj9h8nry3rxxsdwi9fhm81z1"))
+
+(define rust-regex-automata-0.4.14
+  (crate-source "regex-automata" "0.4.14"
+                "13xf7hhn4qmgfh784llcp2kzrvljd13lb2b1ca0mwnf15w9d87bf"))
+
+(define rust-regex-syntax-0.8.10
+  (crate-source "regex-syntax" "0.8.10"
+                "02jx311ka0daxxc7v45ikzhcl3iydjbbb0mdrpc1xgg8v7c7v2fw"))
+
+(define rust-rustix-1.1.4
+  (crate-source "rustix" "1.1.4"
+                "14511f9yjqh0ix07xjrjpllah3325774gfwi9zpq72sip5jlbzmn"))
+
+(define rust-rustversion-1.0.22
+  (crate-source "rustversion" "1.0.22"
+                "0vfl70jhv72scd9rfqgr2n11m5i9l1acnk684m2w83w0zbqdx75k"))
+
+(define rust-same-file-1.0.6
+  (crate-source "same-file" "1.0.6"
+                "00h5j1w87dmhnvbv9l8bic3y7xxsnjmssvifw2ayvgx9mb1ivz4k"))
+
+(define rust-scopeguard-1.2.0
+  (crate-source "scopeguard" "1.2.0"
+                "0jcz9sd47zlsgcnm1hdw0664krxwb5gczlif4qngj2aif8vky54l"))
+
+(define rust-semver-1.0.27
+  (crate-source "semver" "1.0.27"
+                "1qmi3akfrnqc2hfkdgcxhld5bv961wbk8my3ascv5068mc5fnryp"))
+
+(define rust-serde-1.0.228
+  (crate-source "serde" "1.0.228"
+                "17mf4hhjxv5m90g42wmlbc61hdhlm6j9hwfkpcnd72rpgzm993ls"))
+
+(define rust-serde-core-1.0.228
+  (crate-source "serde_core" "1.0.228"
+                "1bb7id2xwx8izq50098s5j2sqrrvk31jbbrjqygyan6ask3qbls1"))
+
+(define rust-serde-derive-1.0.228
+  (crate-source "serde_derive" "1.0.228"
+                "0y8xm7fvmr2kjcd029g9fijpndh8csv5m20g4bd76w8qschg4h6m"))
+
+(define rust-serde-json-1.0.149
+  (crate-source "serde_json" "1.0.149"
+                "11jdx4vilzrjjd1dpgy67x5lgzr0laplz30dhv75lnf5ffa07z43"))
+
+(define rust-sha2-0.10.9
+  (crate-source "sha2" "0.10.9"
+                "10xjj843v31ghsksd9sl9y12qfc48157j1xpb8v1ml39jy0psl57"))
+
+(define rust-shlex-1.3.0
+  (crate-source "shlex" "1.3.0"
+                "0r1y6bv26c1scpxvhg2cabimrmwgbp4p3wy6syj9n0c4s3q2znhg"))
+
+(define rust-simd-adler32-0.3.8
+  (crate-source "simd-adler32" "0.3.8"
+                "18lx2gdgislabbvlgw5q3j5ssrr77v8kmkrxaanp3liimp2sc873"))
+
+(define rust-smallvec-1.15.1
+  (crate-source "smallvec" "1.15.1"
+                "00xxdxxpgyq5vjnpljvkmy99xij5rxgh913ii1v16kzynnivgcb7"))
+
+(define rust-strsim-0.11.1
+  (crate-source "strsim" "0.11.1"
+                "0kzvqlw8hxqb7y598w1s0hxlnmi84sg5vsipp3yg5na5d1rvba3x"))
+
+(define rust-syn-2.0.117
+  (crate-source "syn" "2.0.117"
+                "16cv7c0wbn8amxc54n4w15kxlx5ypdmla8s0gxr2l7bv7s0bhrg6"))
+
+(define rust-tempfile-3.26.0
+  (crate-source "tempfile" "3.26.0"
+                "182lfcv9d5w9349i0rjlgn4431k2m3yqfn9ls84p9d3ifxv2r9w2"))
+
+(define rust-thiserror-1.0.69
+  (crate-source "thiserror" "1.0.69"
+                "0lizjay08agcr5hs9yfzzj6axs53a2rgx070a1dsi3jpkcrzbamn"))
+
+(define rust-thiserror-impl-1.0.69
+  (crate-source "thiserror-impl" "1.0.69"
+                "1h84fmn2nai41cxbhk6pqf46bxqq1b344v8yz089w1chzi76rvjg"))
+
+(define rust-tikv-jemalloc-sys-0.5.4+5.3.0-patched
+  ;; TODO REVIEW: Check bundled sources.
+  (crate-source "tikv-jemalloc-sys" "0.5.4+5.3.0-patched"
+                "1lc5vm1p9dqdvd3mn3264zddnd7z6i95ch3y69prnjgxp0y480ll"))
+
+(define rust-tikv-jemallocator-0.5.4
+  (crate-source "tikv-jemallocator" "0.5.4"
+                "1jpanfm9az8hcbg6dyxdabykx03lj0j4g9cbwfa6rig5dg1f0pwn"))
+
+(define rust-tinytemplate-1.2.1
+  (crate-source "tinytemplate" "1.2.1"
+                "1g5n77cqkdh9hy75zdb01adxn45mkh9y40wdr7l68xpz35gnnkdy"))
+
+(define rust-typenum-1.19.0
+  (crate-source "typenum" "1.19.0"
+                "1fw2mpbn2vmqan56j1b3fbpcdg80mz26fm53fs16bq5xcq84hban"))
+
+(define rust-unicode-ident-1.0.24
+  (crate-source "unicode-ident" "1.0.24"
+                "0xfs8y1g7syl2iykji8zk5hgfi5jw819f5zsrbaxmlzwsly33r76"))
+
+(define rust-unicode-xid-0.2.6
+  (crate-source "unicode-xid" "0.2.6"
+                "0lzqaky89fq0bcrh6jj6bhlz37scfd8c7dsj5dq7y32if56c1hgb"))
+
+(define rust-utf8parse-0.2.2
+  (crate-source "utf8parse" "0.2.2"
+                "088807qwjq46azicqwbhlmzwrbkz7l4hpw43sdkdyyk524vdxaq6"))
+
+(define rust-version-check-0.9.5
+  (crate-source "version_check" "0.9.5"
+                "0nhhi4i5x89gm911azqbn7avs9mdacw2i3vcz3cnmz3mv4rqz4hb"))
+
+(define rust-voracious-radix-sort-1.2.0
+  (crate-source "voracious_radix_sort" "1.2.0"
+                "16a8j7hm35j3y8rah8mi4j2c8wavxvr1xrgpbb872yn2nvy7yvj4"))
+
+(define rust-walkdir-2.5.0
+  (crate-source "walkdir" "2.5.0"
+                "0jsy7a710qv8gld5957ybrnc07gavppp963gs32xk4ag8130jy99"))
+
+(define rust-wasip2-1.0.2+wasi-0.2.9
+  (crate-source "wasip2" "1.0.2+wasi-0.2.9"
+                "1xdw7v08jpfjdg94sp4lbdgzwa587m5ifpz6fpdnkh02kwizj5wm"))
+
+(define rust-wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06
+  (crate-source "wasip3" "0.4.0+wasi-0.3.0-rc-2026-01-06"
+                "19dc8p0y2mfrvgk3qw3c3240nfbylv22mvyxz84dqpgai2zzha2l"))
+
+(define rust-wasm-bindgen-0.2.114
+  (crate-source "wasm-bindgen" "0.2.114"
+                "13nkhw552hpllrrmkd2x9y4bmcxr82kdpky2n667kqzcq6jzjck5"))
+
+(define rust-wasm-bindgen-macro-0.2.114
+  (crate-source "wasm-bindgen-macro" "0.2.114"
+                "1rhq9kkl7n0zjrag9p25xsi4aabpgfkyf02zn4xv6pqhrw7xb8hq"))
+
+(define rust-wasm-bindgen-macro-support-0.2.114
+  (crate-source "wasm-bindgen-macro-support" "0.2.114"
+                "1qriqqjpn922kv5c7f7627fj823k5aifv06j2gvwsiy5map4rkh3"))
+
+(define rust-wasm-bindgen-shared-0.2.114
+  (crate-source "wasm-bindgen-shared" "0.2.114"
+                "05lc6w64jxlk4wk8rjci4z61lhx2ams90la27a41gvi3qaw2d8vm"))
+
+(define rust-wasm-encoder-0.244.0
+  (crate-source "wasm-encoder" "0.244.0"
+                "06c35kv4h42vk3k51xjz1x6hn3mqwfswycmr6ziky033zvr6a04r"))
+
+(define rust-wasm-metadata-0.244.0
+  (crate-source "wasm-metadata" "0.244.0"
+                "02f9dhlnryd2l7zf03whlxai5sv26x4spfibjdvc3g9gd8z3a3mv"))
+
+(define rust-wasmparser-0.244.0
+  (crate-source "wasmparser" "0.244.0"
+                "1zi821hrlsxfhn39nqpmgzc0wk7ax3dv6vrs5cw6kb0v5v3hgf27"))
+
+(define rust-web-sys-0.3.91
+  ;; TODO REVIEW: Check bundled sources.
+  (crate-source "web-sys" "0.3.91"
+                "1y91r8f4dy4iqgrr03swdzqffz6wmllrgninp8kgpaq4n5xs2jw5"))
+
+(define rust-winapi-util-0.1.11
+  (crate-source "winapi-util" "0.1.11"
+                "08hdl7mkll7pz8whg869h58c1r9y7in0w0pk8fm24qc77k0b39y2"))
+
+(define rust-windows-link-0.2.1
+  (crate-source "windows-link" "0.2.1"
+                "1rag186yfr3xx7piv5rg8b6im2dwcf8zldiflvb22xbzwli5507h"))
+
+(define rust-windows-sys-0.61.2
+  ;; TODO REVIEW: Check bundled sources.
+  (crate-source "windows-sys" "0.61.2"
+                "1z7k3y9b6b5h52kid57lvmvm05362zv1v8w0gc7xyv5xphlp44xf"))
+
+(define rust-wit-bindgen-0.51.0
+  (crate-source "wit-bindgen" "0.51.0"
+                "19fazgch8sq5cvjv3ynhhfh5d5x08jq2pkw8jfb05vbcyqcr496p"))
+
+(define rust-wit-bindgen-core-0.51.0
+  (crate-source "wit-bindgen-core" "0.51.0"
+                "1p2jszqsqbx8k7y8nwvxg65wqzxjm048ba5phaq8r9iy9ildwqga"))
+
+(define rust-wit-bindgen-rust-0.51.0
+  (crate-source "wit-bindgen-rust" "0.51.0"
+                "08bzn5fsvkb9x9wyvyx98qglknj2075xk1n7c5jxv15jykh6didp"))
+
+(define rust-wit-bindgen-rust-macro-0.51.0
+  (crate-source "wit-bindgen-rust-macro" "0.51.0"
+                "0ymizapzv2id89igxsz2n587y2hlfypf6n8kyp68x976fzyrn3qc"))
+
+(define rust-wit-component-0.244.0
+  (crate-source "wit-component" "0.244.0"
+                "1clwxgsgdns3zj2fqnrjcp8y5gazwfa1k0sy5cbk0fsmx4hflrlx"))
+
+(define rust-wit-parser-0.244.0
+  (crate-source "wit-parser" "0.244.0"
+                "0dm7avvdxryxd5b02l0g5h6933z1cw5z0d4wynvq2cywq55srj7c"))
+
+(define rust-zerocopy-0.8.40
+  (crate-source "zerocopy" "0.8.40"
+                "1r9j2mlb54q1l9pgall3mk0gg6cprhdncvbbgsgxnxmmj3jcd2d7"))
+
+(define rust-zerocopy-derive-0.8.40
+  (crate-source "zerocopy-derive" "0.8.40"
+                "0lsrhg5nvf0c40z644a014l2nrvh7xw0ff3i9744k9vif2d4hp7n"))
+
+(define rust-zmij-1.0.21
+  (crate-source "zmij" "1.0.21"
+                "1amb5i6gz7yjb0dnmz5y669674pqmwbj44p4yfxfv2ncgvk8x15q"))
+
+(define rust-zstd-0.13.3
+  (crate-source "zstd" "0.13.3"
+                "12n0h4w9l526li7jl972rxpyf012jw3nwmji2qbjghv9ll8y67p9"))
+
+(define rust-zstd-safe-7.2.4
+  (crate-source "zstd-safe" "7.2.4"
+                "179vxmkzhpz6cq6mfzvgwc99bpgllkr6lwxq7ylh5dmby3aw8jcg"))
+
+(define rust-zstd-sys-2.0.16+zstd.1.5.7
+  ;; TODO REVIEW: Check bundled sources.
+  (crate-source "zstd-sys" "2.0.16+zstd.1.5.7"
+                "0j1pd2iaqpvaxlgqmmijj68wma7xwdv9grrr63j873yw5ay9xqci"))
+
+;;;
+;;; Crate sources (generated by: guix import crate -f Cargo.lock onecode).
+;;;
+
+(define rust-aho-corasick-1.1.3
+  (crate-source "aho-corasick" "1.1.3"
+                "05mrpkvdgp5d20y2p989f187ry9diliijgwrs254fs9s1m1x6q4f"))
+
+(define rust-bindgen-0.70.1
+  (crate-source "bindgen" "0.70.1"
+                "0vyf0jp6apcy9kjyz4s8vldj0xqycnbzb6zv3skkwiqdi3nqz7gl"))
+
+(define rust-bitflags-2.9.4
+  (crate-source "bitflags" "2.9.4"
+                "157kkcv8s7vk6d17dar1pa5cqcz4c8pdrn16wm1ld7jnr86d2q92"))
+
+(define rust-cc-1.2.40
+  (crate-source "cc" "1.2.40"
+                "1ywr07jr2rj1h7gkgkc2c1bn39wchpfnrm39sjm7dzdiyj95vl71"))
+
+(define rust-cexpr-0.6.0
+  (crate-source "cexpr" "0.6.0"
+                "0rl77bwhs5p979ih4r0202cn5jrfsrbgrksp40lkfz5vk1x3ib3g"))
+
+(define rust-cfg-if-1.0.3
+  (crate-source "cfg-if" "1.0.3"
+                "1afg7146gbxjvkbjx7i5sdrpqp9q5akmk9004fr8rsm90jf2il9g"))
+
+(define rust-clang-sys-1.8.1
+  ;; TODO REVIEW: Check bundled sources.
+  (crate-source "clang-sys" "1.8.1"
+                "1x1r9yqss76z8xwpdanw313ss6fniwc1r7dzb5ycjn0ph53kj0hb"))
+
+(define rust-find-msvc-tools-0.1.3
+  (crate-source "find-msvc-tools" "0.1.3"
+                "1cr47xn14dgkyd5ca2jzfk1apkm3wwqvvglqqhrcx4aidv9gk683"))
+
+(define rust-glob-0.3.3
+  (crate-source "glob" "0.3.3"
+                "106jpd3syfzjfj2k70mwm0v436qbx96wig98m4q8x071yrq35hhc"))
+
+(define rust-itertools-0.13.0
+  (crate-source "itertools" "0.13.0"
+                "11hiy3qzl643zcigknclh446qb9zlg4dpdzfkjaa9q9fqpgyfgj1"))
+
+(define rust-libc-0.2.176
+  (crate-source "libc" "0.2.176"
+                "0x7ivn80h7nz2l46vra7bxx36s6r8d0lkax14dx97skjsss2kyaq"))
+
+(define rust-libloading-0.8.9
+  (crate-source "libloading" "0.8.9"
+                "0mfwxwjwi2cf0plxcd685yxzavlslz7xirss3b9cbrzyk4hv1i6p"))
+
+(define rust-log-0.4.28
+  (crate-source "log" "0.4.28"
+                "0cklpzrpxafbaq1nyxarhnmcw9z3xcjrad3ch55mmr58xw2ha21l"))
+
+(define rust-memchr-2.7.6
+  (crate-source "memchr" "2.7.6"
+                "0wy29kf6pb4fbhfksjbs05jy2f32r2f3r1ga6qkmpz31k79h0azm"))
+
+(define rust-minimal-lexical-0.2.1
+  (crate-source "minimal-lexical" "0.2.1"
+                "16ppc5g84aijpri4jzv14rvcnslvlpphbszc7zzp6vfkddf4qdb8"))
+
+(define rust-nom-7.1.3
+  (crate-source "nom" "7.1.3"
+                "0jha9901wxam390jcf5pfa0qqfrgh8li787jx2ip0yk5b8y9hwyj"))
+
+(define rust-proc-macro2-1.0.101
+  (crate-source "proc-macro2" "1.0.101"
+                "1pijhychkpl7rcyf1h7mfk6gjfii1ywf5n0snmnqs5g4hvyl7bl9"))
+
+(define rust-quote-1.0.41
+  (crate-source "quote" "1.0.41"
+                "1lg108nb57lwbqlnpsii89cchk6i8pkcvrv88xh1p7a9gdz7c9ff"))
+
+(define rust-regex-1.11.3
+  (crate-source "regex" "1.11.3"
+                "0b58ya98c4i5cjjiwhpcnjr61cv9g143qhdwhsryggj09098hllb"))
+
+(define rust-regex-automata-0.4.11
+  (crate-source "regex-automata" "0.4.11"
+                "1bawj908pxixpggcnma3xazw53mwyz68lv9hn4yg63nlhv7bjgl3"))
+
+(define rust-regex-syntax-0.8.6
+  (crate-source "regex-syntax" "0.8.6"
+                "00chjpglclfskmc919fj5aq308ffbrmcn7kzbkz92k231xdsmx6a"))
+
+(define rust-syn-2.0.106
+  (crate-source "syn" "2.0.106"
+                "19mddxp1ia00hfdzimygqmr1jqdvyl86k48427bkci4d08wc9rzd"))
+
+(define rust-unicode-ident-1.0.19
+  (crate-source "unicode-ident" "1.0.19"
+                "17bx1j1zf6b9j3kpyf74mraary7ava3984km0n8kh499h5a58fpn"))
+
+;;;
+;;; Additional crate sources for fastga-rs (generated by: guix import crate -f Cargo.lock fastga-rs).
+;;; which 4.4.2 is used instead of 6.0.3 to avoid home 0.5.12 (requires rustc 1.88).
+;;;
+
+(define rust-which-4.4.2
+  (crate-source "which" "4.4.2"
+                "1ixzmx3svsv5hbdvd8vdhd3qwvf6ns8jdpif1wmwsy10k90j9fl7"))
+
+(define rust-anyhow-1.0.100
+  (crate-source "anyhow" "1.0.100"
+                "0qbfmw4hhv2ampza1csyvf1jqjs2dgrj29cv3h3sh623c6qvcgm2"))
+
+(define rust-bitflags-2.10.0
+  (crate-source "bitflags" "2.10.0"
+                "1lqxwc3625lcjrjm5vygban9v8a6dlxisp1aqylibiaw52si4bl1"))
+
+(define rust-cc-1.2.43
+  (crate-source "cc" "1.2.43"
+                "1hpg1f1srgd5bfivvln1s3kcajdxpqvjsvd8m4y4nmap8pwv17kk"))
+
+(define rust-diff-0.1.13
+  (crate-source "diff" "0.1.13"
+                "1j0nzjxci2zqx63hdcihkp0a4dkdmzxd7my4m7zk6cjyfy34j9an"))
+
+(define rust-find-msvc-tools-0.1.4
+  (crate-source "find-msvc-tools" "0.1.4"
+                "09x1sfinrz86bkm6i2d85lpsfnxn0w797g5zisv1nwhaz1w1h1aj"))
+
+(define rust-home-0.5.12
+  (crate-source "home" "0.5.12"
+                "13bjyzgx6q9srnfvl43dvmhn93qc8mh5w7cylk2g13sj3i3pyqnc"))
+
+(define rust-libc-0.2.177
+  (crate-source "libc" "0.2.177"
+                "0xjrn69cywaii1iq2lib201bhlvan7czmrm604h5qcm28yps4x18"))
+
+(define rust-linux-raw-sys-0.4.15
+  ;; TODO REVIEW: Check bundled sources.
+  (crate-source "linux-raw-sys" "0.4.15"
+                "1aq7r2g7786hyxhv40spzf2nhag5xbw2axxc1k8z5k1dsgdm4v6j"))
+
+(define rust-linux-raw-sys-0.11.0
+  ;; TODO REVIEW: Check bundled sources.
+  (crate-source "linux-raw-sys" "0.11.0"
+                "0fghx0nn8nvbz5yzgizfcwd6ap2pislp68j8c1bwyr6sacxkq7fz"))
+
+(define rust-nix-0.27.1
+  (crate-source "nix" "0.27.1"
+                "0ly0kkmij5f0sqz35lx9czlbk6zpihb7yh1bsy4irzwfd2f4xc1f"))
+
+(define rust-onecode-0.1.0
+  (crate-source "onecode" "0.1.0"
+                "14fp7jpimfqrcm71yag2kbfidsyq430fb1vg1qrm0xi3jfm5b1f5"))
+
+(define rust-pretty-assertions-1.4.1
+  (crate-source "pretty_assertions" "1.4.1"
+                "0v8iq35ca4rw3rza5is3wjxwsf88303ivys07anc5yviybi31q9s"))
+
+(define rust-proc-macro2-1.0.103
+  (crate-source "proc-macro2" "1.0.103"
+                "1s29bz20xl2qk5ffs2mbdqknaj43ri673dz86axdbf47xz25psay"))
+
+(define rust-regex-1.12.2
+  (crate-source "regex" "1.12.2"
+                "1m14zkg6xmkb0q5ah3y39cmggclsjdr1wpxfa4kf5wvm3wcw0fw4"))
+
+(define rust-regex-automata-0.4.13
+  (crate-source "regex-automata" "0.4.13"
+                "070z0j23pjfidqz0z89id1fca4p572wxpcr20a0qsv68bbrclxjj"))
+
+(define rust-regex-syntax-0.8.8
+  (crate-source "regex-syntax" "0.8.8"
+                "0n7ggnpk0r32rzgnycy5xrc1yp2kq19m6pz98ch3c6dkaxw9hbbs"))
+
+(define rust-rustix-0.38.44
+  (crate-source "rustix" "0.38.44"
+                "0m61v0h15lf5rrnbjhcb9306bgqrhskrqv7i1n0939dsw8dbrdgx"))
+
+(define rust-rustix-1.1.2
+  (crate-source "rustix" "1.1.2"
+                "0gpz343xfzx16x82s1x336n0kr49j02cvhgxdvaq86jmqnigh5fd"))
+
+(define rust-syn-2.0.108
+  (crate-source "syn" "2.0.108"
+                "05z908svb0yw5wzrlv27l2i8j1d8l16hd5r8bjh809146myr2n6s"))
+
+(define rust-tempfile-3.23.0
+  (crate-source "tempfile" "3.23.0"
+                "05igl2gml6z6i2va1bv49f9f1wb3f752c2i63lvlb9s2vxxwfc9d"))
+
+(define rust-unicode-ident-1.0.20
+  (crate-source "unicode-ident" "1.0.20"
+                "01lafj17xwizrlvn006zz8ip99hqisf77kjk0a8flfmpmrsynbj6"))
+
+(define rust-wasip2-1.0.1+wasi-0.2.4
+  (crate-source "wasip2" "1.0.1+wasi-0.2.4"
+                "1rsqmpspwy0zja82xx7kbkbg9fv34a4a2if3sbd76dy64a244qh5"))
+
+(define rust-which-6.0.3
+  (crate-source "which" "6.0.3"
+                "07yg74dsq644hq5a35546c9mja6rsjdsg92rykr9hkflxf7r5vml"))
+
+(define rust-windows-sys-0.59.0
+  ;; TODO REVIEW: Check bundled sources.
+  (crate-source "windows-sys" "0.59.0"
+                "0fw5672ziw8b3zpmnbp9pdv1famk74f1l9fcbc3zsrzdg56vqf0y"))
+
+(define rust-windows-targets-0.52.6
+  (crate-source "windows-targets" "0.52.6"
+                "0wwrx625nwlfp7k93r2rra568gad1mwd888h1jwnl0vfg5r4ywlv"))
+
+(define rust-windows-aarch64-gnullvm-0.52.6
+  (crate-source "windows_aarch64_gnullvm" "0.52.6"
+                "1lrcq38cr2arvmz19v32qaggvj8bh1640mdm9c2fr877h0hn591j"))
+
+(define rust-windows-aarch64-msvc-0.52.6
+  (crate-source "windows_aarch64_msvc" "0.52.6"
+                "0sfl0nysnz32yyfh773hpi49b1q700ah6y7sacmjbqjjn5xjmv09"))
+
+(define rust-windows-i686-gnu-0.52.6
+  (crate-source "windows_i686_gnu" "0.52.6"
+                "02zspglbykh1jh9pi7gn8g1f97jh1rrccni9ivmrfbl0mgamm6wf"))
+
+(define rust-windows-i686-gnullvm-0.52.6
+  (crate-source "windows_i686_gnullvm" "0.52.6"
+                "0rpdx1537mw6slcpqa0rm3qixmsb79nbhqy5fsm3q2q9ik9m5vhf"))
+
+(define rust-windows-i686-msvc-0.52.6
+  (crate-source "windows_i686_msvc" "0.52.6"
+                "0rkcqmp4zzmfvrrrx01260q3xkpzi6fzi2x2pgdcdry50ny4h294"))
+
+(define rust-windows-x86-64-gnu-0.52.6
+  (crate-source "windows_x86_64_gnu" "0.52.6"
+                "0y0sifqcb56a56mvn7xjgs8g43p33mfqkd8wj1yhrgxzma05qyhl"))
+
+(define rust-windows-x86-64-gnullvm-0.52.6
+  (crate-source "windows_x86_64_gnullvm" "0.52.6"
+                "03gda7zjx1qh8k9nnlgb7m3w3s1xkysg55hkd1wjch8pqhyv5m94"))
+
+(define rust-windows-x86-64-msvc-0.52.6
+  (crate-source "windows_x86_64_msvc" "0.52.6"
+                "1v7rb5cibyzx8vak29pdrk8nx9hycsjs4w0jgms08qk49jl6v7sq"))
+
+(define rust-winsafe-0.0.19
+  (crate-source "winsafe" "0.0.19"
+                "0169xy9mjma8dys4m8v4x0xhw2gkbhv2v1wsbvcjl9bhnxxd2dfi"))
+
+(define rust-wit-bindgen-0.46.0
+  (crate-source "wit-bindgen" "0.46.0"
+                "0ngysw50gp2wrrfxbwgp6dhw1g6sckknsn3wm7l00vaf7n48aypi"))
+
+(define rust-yansi-1.0.1
+  (crate-source "yansi" "1.0.1"
+                "0jdh55jyv0dpd38ij4qh60zglbw9aa8wafqai6m0wa7xaxk3mrfg"))
+
+;;;
+;;; Additional crate sources for impg (generated by: guix import crate -f Cargo.lock impg).
+;;;
+
+(define rust-approx-0.5.1
+  (crate-source "approx" "0.5.1"
+                "1ilpv3dgd58rasslss0labarq7jawxmivk17wsh8wmkdm3q15cfa"))
+
+(define rust-arrayvec-0.5.2
+  (crate-source "arrayvec" "0.5.2"
+                "12q6hn01x5435bprwlb7w9m7817dyfq55yrl4psygr78bp32zdi3"))
+
+(define rust-bgzip-0.3.1
+  (crate-source "bgzip" "0.3.1"
+                "16zr2nclis3kgz0jxi7ayyk510ar5dvyfpf03fazajmn1ycdhkxn"))
+
+(define rust-bincode-2.0.1
+  (crate-source "bincode" "2.0.1"
+                "0h5pxp3dqkigjwy926a03sl69n9wv7aq4142a20kw9lhn3bzbsin"))
+
+(define rust-bincode-derive-2.0.1
+  (crate-source "bincode_derive" "2.0.1"
+                "029wmh26hq3hhs1gq629y0frn2pkl7ld061rk23fji8g8jd715dz"))
+
+(define rust-bio-types-1.0.4
+  (crate-source "bio-types" "1.0.4"
+                "0zmdcvj44a088larkahcic5z61cwn2x80iym0w14albzid7zbp7l"))
+
+(define rust-bitvec-1.0.1
+  (crate-source "bitvec" "1.0.1"
+                "173ydyj2q5vwj88k6xgjnfsshs4x9wbvjjv7sm0h36r34hn87hhv"))
+
+(define rust-boomphf-0.5.9
+  (crate-source "boomphf" "0.5.9"
+                "0braniw72g9yq5006sfgc1g8d4317bb524c694jw6nggizrvg3sf"))
+
+(define rust-bstr-0.2.17
+  (crate-source "bstr" "0.2.17"
+                "08rjbhysy6gg27db2h3pnhvr2mlr5vkj797i9625kwg8hgrnjdds"))
+
+(define rust-bytemuck-1.25.0
+  (crate-source "bytemuck" "1.25.0"
+                "1v1z32igg9zq49phb3fra0ax5r2inf3aw473vldnm886sx5vdvy8"))
+
+(define rust-bytemuck-derive-1.10.2
+  (crate-source "bytemuck_derive" "1.10.2"
+                "1zvmjmw1sdmx9znzm4dpbb2yvz9vyim8w6gp4z256l46qqdvvazr"))
+
+(define rust-bytes-1.11.1
+  (crate-source "bytes" "1.11.1"
+                "0czwlhbq8z29wq0ia87yass2mzy1y0jcasjb8ghriiybnwrqfx0y"))
+
+(define rust-bzip2-0.5.2
+  (crate-source "bzip2" "0.5.2"
+                "0iya6nbj0p2y8jss0z05yncc5hadry164fw3zva01y06v4igpv29"))
+
+(define rust-bzip2-sys-0.1.13+1.0.8
+  ;; TODO: Check bundled sources.
+  (crate-source "bzip2-sys" "0.1.13+1.0.8"
+                "056c39pgjh4272bdslv445f5ry64xvb0f7nph3z7860ln8rzynr2"))
+
+(define rust-cmake-0.1.57
+  (crate-source "cmake" "0.1.57"
+                "0zgg10qgykig4nxyf7whrqfg7fkk0xfxhiavikmrndvbrm23qi3m"))
+
+(define rust-codespan-reporting-0.13.1
+  (crate-source "codespan-reporting" "0.13.1"
+                "10gnryisncjpfv7wi3jv9mhmrvqz6ksvfzddw3gf99q9k5b1sjdg"))
+
+(define rust-coitrees-0.4.0
+  (crate-source "coitrees" "0.4.0"
+                "1qwb4c5gx30gl1kyi85rbq6z23l2f9lm0q02ym160n0fvc89c3r4"))
+
+(define rust-console-0.16.1
+  (crate-source "console" "0.16.1"
+                "1x4x6vfi1s55nbr4i77b9r87s213h46lq396sij9fkmidqx78c5l"))
+
+(define rust-core-affinity-0.8.3
+  (crate-source "core_affinity" "0.8.3"
+                "0hhkjybngi5n2ayjmbba2n2gh9fc8xbqgpzm2dp6q094nskv6d50"))
+
+(define rust-custom-derive-0.1.7
+  (crate-source "custom_derive" "0.1.7"
+                "1f81bavw1wnykwh21hh4yyzigs6zl6f6pkk9p3car8kq95yfb2pg"))
+
+(define rust-cxx-1.0.194
+  (crate-source "cxx" "1.0.194"
+                "0zkw4ig6cwss01xfmgnsyp071ji7g49iqd1vv51jyfly64vq8zbl"))
+
+(define rust-cxx-build-1.0.194
+  (crate-source "cxx-build" "1.0.194"
+                "07pwgafaf8qd7ic8f5lbgqgc9zcvm6l7vvvan5vj850a35ynkx5h"))
+
+(define rust-cxxbridge-cmd-1.0.194
+  (crate-source "cxxbridge-cmd" "1.0.194"
+                "0a63lwv4x36ayxn9fvn7hghjlmf0w4nqy0pd1v2x8y46zacng5fh"))
+
+(define rust-cxxbridge-flags-1.0.194
+  (crate-source "cxxbridge-flags" "1.0.194"
+                "0fi8rf9076fk53f8gd4a6x1dwffys9d9bqz7mjcavw5lda1llf13"))
+
+(define rust-cxxbridge-macro-1.0.194
+  (crate-source "cxxbridge-macro" "1.0.194"
+                "1kv3yw1qc9x686kw8z3mmh5ddz98f6v7ghsgzfnjd59bhaswdb76"))
+
+(define rust-derive-new-0.5.9
+  (crate-source "derive-new" "0.5.9"
+                "0d9m5kcj1rdmdjqfgj7rxxhdzx0as7p4rp1mjx5j6w5dl2f3461l"))
+
+(define rust-derive-new-0.7.0
+  (crate-source "derive-new" "0.7.0"
+                "1k5y4lrj182n86zjb3q0rkajgfqazamjzinsi7prw616yi88vp1c"))
+
+(define rust-displaydoc-0.2.5
+  (crate-source "displaydoc" "0.2.5"
+                "1q0alair462j21iiqwrr21iabkfnb13d6x5w95lkdg21q2xrqdlp"))
+
+(define rust-encode-unicode-1.0.0
+  (crate-source "encode_unicode" "1.0.0"
+                "1h5j7j7byi289by63s3w4a8b3g6l5ccdrws7a67nn07vdxj77ail"))
+
+(define rust-env-filter-1.0.0
+  (crate-source "env_filter" "1.0.0"
+                "13rhwy5arjn626a0z3hvvkpf9w9pnll14c35vscyqx3jwp43q73s"))
+
+(define rust-env-logger-0.11.9
+  (crate-source "env_logger" "0.11.9"
+                "13913sqpnhv741z5ixmcy5j3nnml53gmsllnhajjkx2ili7fxnmj"))
+
+(define rust-flume-0.11.1
+  (crate-source "flume" "0.11.1"
+                "15ch0slxa8sqsi6c73a0ky6vdnh48q8cxjf7rksa3243m394s3ns"))
+
+(define rust-fnv-1.0.7
+  (crate-source "fnv" "1.0.7"
+                "1hc2mcqha06aibcaza94vbi81j6pr9a1bbxrxjfhc91zin8yr7iz"))
+
+(define rust-foldhash-0.2.0
+  (crate-source "foldhash" "0.2.0"
+                "1nvgylb099s11xpfm1kn2wcsql080nqmnhj1l25bp3r2b35j9kkp"))
+
+(define rust-form-urlencoded-1.2.2
+  (crate-source "form_urlencoded" "1.2.2"
+                "1kqzb2qn608rxl3dws04zahcklpplkd5r1vpabwga5l50d2v4k6b"))
+
+(define rust-fs-utils-1.1.4
+  (crate-source "fs-utils" "1.1.4"
+                "14r5wl14mz227v0lpy89lvjzfnxgdxigvrrmm6c4r52w03fakivg"))
+
+(define rust-funty-2.0.0
+  (crate-source "funty" "2.0.0"
+                "177w048bm0046qlzvp33ag3ghqkqw4ncpzcm5lq36gxf2lla7mg6"))
+
+(define rust-futures-core-0.3.32
+  (crate-source "futures-core" "0.3.32"
+                "07bbvwjbm5g2i330nyr1kcvjapkmdqzl4r6mqv75ivvjaa0m0d3y"))
+
+(define rust-futures-sink-0.3.32
+  (crate-source "futures-sink" "0.3.32"
+                "14q8ml7hn5a6gyy9ri236j28kh0svqmrk4gcg0wh26rkazhm95y3"))
+
+(define rust-getrandom-0.2.16
+  (crate-source "getrandom" "0.2.16"
+                "14l5aaia20cc6cc08xdlhrzmfcylmrnprwnna20lqf746pqzjprk"))
+
+(define rust-getrandom-0.3.3
+  (crate-source "getrandom" "0.3.3"
+                "1x6jl875zp6b2b6qp9ghc84b0l76bvng2lvm8zfcmwjl7rb5w516"))
+
+(define rust-gfa-0.10.1
+  (crate-source "gfa" "0.10.1"
+                "1x996rpfnflgi2j4dgaj5sdxdbf24zfm9d2ha0zy8aid0cd60cln"))
+
+(define rust-gzp-1.0.1
+  (crate-source "gzp" "1.0.1"
+                "0k9qhky0vm4kyqqqi8i8h99128mlfmvl9w53v9kgm9nql3lq18gc"))
+
+(define rust-handlegraph-0.7.0-alpha.9.3ac575e
+  ;; TODO: Define standalone package if this is a workspace.
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/chfi/rs-handlegraph")
+                        (commit "3ac575e4216ce16a16667503a8875e469a40a97a")))
+    (file-name (git-file-name "rust-handlegraph" "0.7.0-alpha.9.3ac575e"))
+    (sha256 (base32 "1x9lhc4hjyfixvhdxr6z0lanfcynnqsmx3dqaf6xw4dpx0i4mcgg"))))
+
+(define rust-hts-sys-2.2.0
+  ;; TODO: Check bundled sources.
+  (crate-source "hts-sys" "2.2.0"
+                "1cmvdwssd6xjk6w1iigaj5rl9ibx4zaaskfb2ji2mlhw28f7z3g3"))
+
+(define rust-icu-collections-2.1.1
+  (crate-source "icu_collections" "2.1.1"
+                "0hsblchsdl64q21qwrs4hvc2672jrf466zivbj1bwyv606bn8ssc"))
+
+(define rust-icu-locale-core-2.1.1
+  (crate-source "icu_locale_core" "2.1.1"
+                "1djvdc2f5ylmp1ymzv4gcnmq1s4hqfim9nxlcm173lsd01hpifpd"))
+
+(define rust-icu-normalizer-2.1.1
+  (crate-source "icu_normalizer" "2.1.1"
+                "16dmn5596la2qm0r3vih0bzjfi0vx9a20yqjha6r1y3vnql8hv2z"))
+
+(define rust-icu-normalizer-data-2.1.1
+  (crate-source "icu_normalizer_data" "2.1.1"
+                "02jnzizg6q75m41l6c13xc7nkc5q8yr1b728dcgfhpzw076wrvbs"))
+
+(define rust-icu-properties-2.0.1
+  (crate-source "icu_properties" "2.0.1"
+                "0az349pjg8f18lrjbdmxcpg676a7iz2ibc09d2wfz57b3sf62v01"))
+
+(define rust-icu-properties-data-2.0.1
+  (crate-source "icu_properties_data" "2.0.1"
+                "0cnn3fkq6k88w7p86w7hsd1254s4sl783rpz4p6hlccq74a5k119"))
+
+(define rust-icu-provider-2.1.1
+  (crate-source "icu_provider" "2.1.1"
+                "0576b7dizgyhpfa74kacv86y4g1p7v5ffd6c56kf1q82rvq2r5l5"))
+
+(define rust-idna-1.1.0
+  (crate-source "idna" "1.1.0"
+                "1pp4n7hppm480zcx411dsv9wfibai00wbpgnjj4qj0xa7kr7a21v"))
+
+(define rust-idna-adapter-1.2.1
+  (crate-source "idna_adapter" "1.2.1"
+                "0i0339pxig6mv786nkqcxnwqa87v4m94b2653f6k3aj0jmhfkjis"))
+
+(define rust-ieee754-0.2.6
+  (crate-source "ieee754" "0.2.6"
+                "1771d2kvw1wga65yrg9m7maky0fzsaq9hvhkv91n6gmxmjfdl1wh"))
+
+(define rust-indicatif-0.18.4
+  (crate-source "indicatif" "0.18.4"
+                "1sz9p1a7i0z666psqzjdpi8xa11icmnpfd4q4dyxm4ihh0ihyir5"))
+
+(define rust-jiff-0.2.22
+  (crate-source "jiff" "0.2.22"
+                "1hni7qv2j2kbjisw84r7y6gxdb8qx534vw92nmz13nc7gjy496w1"))
+
+(define rust-jiff-static-0.2.22
+  (crate-source "jiff-static" "0.2.22"
+                "18fljj75vxqvq1v55s074pbbrjy67qg1p2f0cvbmzhzc33dm40j7"))
+
+(define rust-lazy-static-1.5.0
+  (crate-source "lazy_static" "1.5.0"
+                "1zk6dqqni0193xg6iijh7i3i44sryglwgvx20spdvwk3r6sbrlmv"))
+
+(define rust-lexical-core-0.7.6
+  (crate-source "lexical-core" "0.7.6"
+                "1zjzab1fnaw4kj6ixyrskp4dyz761gdcab07m4bkvlk1l4mcc1v6"))
+
+(define rust-libc-0.2.175
+  (crate-source "libc" "0.2.175"
+                "0hw5sb3gjr0ivah7s3fmavlpvspjpd4mr009abmam2sr7r4sx0ka"))
+
+(define rust-libdeflate-sys-1.25.2
+  ;; TODO: Check bundled sources.
+  (crate-source "libdeflate-sys" "1.25.2"
+                "02pc3wphyi5c33vcm3dvmwgybazp1lnh8w075wyrd1za1003wxbj"))
+
+(define rust-libdeflater-1.25.2
+  (crate-source "libdeflater" "1.25.2"
+                "0wgyb0b7mz7hhx60hhj1wjnnmchsq1xzp7xmvwq61fxidz7l3vni"))
+
+(define rust-liblzma-0.3.6
+  (crate-source "liblzma" "0.3.6"
+                "0r6pkykpajdypdyyij90d8s2ihhsz9m9ly7pm1dpfsg29frd4cd6"))
+
+(define rust-liblzma-sys-0.3.13
+  ;; TODO: Check bundled sources.
+  (crate-source "liblzma-sys" "0.3.13"
+                "0x9lni7a3x1rwdsribj311zpxb5n99kn256yad2z7vxck4ddznpg"))
+
+(define rust-libz-ng-sys-1.1.24
+  ;; TODO: Check bundled sources.
+  (crate-source "libz-ng-sys" "1.1.24"
+                "1fi9c3w09nnjhx693675zmm71qmm6rpxxkhpiswx2vkw6j7h5zsj"))
+
+(define rust-libz-rs-sys-0.5.2
+  ;; TODO: Check bundled sources.
+  (crate-source "libz-rs-sys" "0.5.2"
+                "1kdy093bhxfkgx7li3raxigcc3qdqjn3hvrpjkblvv6r777vh3c4"))
+
+(define rust-libz-sys-1.1.24
+  ;; TODO: Check bundled sources.
+  (crate-source "libz-sys" "1.1.24"
+                "0f8879301wxgljw8snkcix90p6qbm4inp3sqrsjq9b2svv5yjda7"))
+
+(define rust-linear-map-1.2.0
+  (crate-source "linear-map" "1.2.0"
+                "1vh3sczl4xb5asdlpafdf3y4g9bp63fgs8y2a2sjgmcsn7v21bmz"))
+
+(define rust-link-cplusplus-1.0.12
+  (crate-source "link-cplusplus" "1.0.12"
+                "10lcgfp9pnxpihp21s86xnq57vpr97m2k419d8rvkl57m8qcfy3z"))
+
+(define rust-litemap-0.8.1
+  (crate-source "litemap" "0.8.1"
+                "0xsy8pfp9s802rsj1bq2ys2kbk1g36w5dr3gkfip7gphb5x60wv3"))
+
+(define rust-matrixmultiply-0.3.10
+  (crate-source "matrixmultiply" "0.3.10"
+                "020sqwg3cvprfasbszqbnis9zx6c3w9vlkfidyimgblzdq0y6vd0"))
+
+(define rust-memmap-0.7.0
+  (crate-source "memmap" "0.7.0"
+                "0ns7kkd1h4pijdkwfvw4qlbbmqmlmzwlq3g2676dcl5vwyazv1b5"))
+
+(define rust-nalgebra-0.33.2
+  (crate-source "nalgebra" "0.33.2"
+                "0fvayv2fa6x4mfm4cq3m2cfcc2jwkiq4sm73209zszkh9gvcvbi6"))
+
+(define rust-nalgebra-macros-0.2.2
+  (crate-source "nalgebra-macros" "0.2.2"
+                "1z6v9phhr1hwzyyblf792128lxfv1hy1sxl4cvikihcgmxr56ji5"))
+
+(define rust-nanorand-0.7.0
+  (crate-source "nanorand" "0.7.0"
+                "1hr60b8zlfy7mxjcwx2wfmhpkx7vfr3v9x12shmv1c10b0y32lba"))
+
+(define rust-natord-1.0.9
+  (crate-source "natord" "1.0.9"
+                "0z75spwag3ch20841pvfwhh3892i2z2sli4pzp1jgizbipdrd39h"))
+
+(define rust-newtype-derive-0.1.6
+  (crate-source "newtype_derive" "0.1.6"
+                "1v3170xscs65gjx5vl1zjnqp86wngbzw3n2q74ibfnqqkx6x535c"))
+
+(define rust-niffler-3.0.0
+  (crate-source "niffler" "3.0.0"
+                "0x1mzgfhpxr0mwwpsrmlkyalmbaiv97pspyjvymrzb1xr5f13lv2"))
+
+(define rust-noodles-0.100.0
+  (crate-source "noodles" "0.100.0"
+                "17lnhmzbp94g383sxxwmqd0aag9daa1vmgsqx7p9gzdkwwbrqpca"))
+
+(define rust-noodles-bgzf-0.42.0
+  (crate-source "noodles-bgzf" "0.42.0"
+                "0fdllcmsdyqg6zays6y0s3lls1qjjdm5jkhh832x1by434zkw73w"))
+
+(define rust-num-bigint-0.4.6
+  (crate-source "num-bigint" "0.4.6"
+                "1f903zd33i6hkjpsgwhqwi2wffnvkxbn6rv4mkgcjcqi7xr4zr55"))
+
+(define rust-num-complex-0.4.6
+  (crate-source "num-complex" "0.4.6"
+                "15cla16mnw12xzf5g041nxbjjm9m85hdgadd5dl5d0b30w9qmy3k"))
+
+(define rust-num-integer-0.1.46
+  (crate-source "num-integer" "0.1.46"
+                "13w5g54a9184cqlbsq80rnxw4jj4s0d8wv75jsq5r2lms8gncsbr"))
+
+(define rust-num-rational-0.4.2
+  (crate-source "num-rational" "0.4.2"
+                "093qndy02817vpgcqjnj139im3jl7vkq4h68kykdqqh577d18ggq"))
+
+(define rust-paste-1.0.15
+  (crate-source "paste" "1.0.15"
+                "02pxffpdqkapy292harq6asfjvadgp1s005fip9ljfsn9fvxgh2p"))
+
+(define rust-percent-encoding-2.3.2
+  (crate-source "percent-encoding" "2.3.2"
+                "083jv1ai930azvawz2khv7w73xh8mnylk7i578cifndjn5y64kwv"))
+
+(define rust-portable-atomic-1.13.1
+  (crate-source "portable-atomic" "1.13.1"
+                "0j8vlar3n5acyigq8q6f4wjx3k3s5yz0rlpqrv76j73gi5qr8fn3"))
+
+(define rust-portable-atomic-util-0.2.5
+  (crate-source "portable-atomic-util" "0.2.5"
+                "1xcm0ia8756k6hdgafx4g3lx3fw0hvz2zqswq7c2sy58gxnvk7bs"))
+
+(define rust-potential-utf-0.1.4
+  (crate-source "potential_utf" "0.1.4"
+                "0xxg0pkfpq299wvwln409z4fk80rbv55phh3f1jhjajy5x1ljfdp"))
+
+(define rust-quick-error-1.2.3
+  (crate-source "quick-error" "1.2.3"
+                "1q6za3v78hsspisc197bg3g7rpc989qycy8ypr8ap8igv10ikl51"))
+
+(define rust-quote-1.0.40
+  (crate-source "quote" "1.0.40"
+                "1394cxjg6nwld82pzp2d4fp6pmaz32gai1zh9z5hvh0dawww118q"))
+
+(define rust-radium-0.7.0
+  (crate-source "radium" "0.7.0"
+                "02cxfi3ky3c4yhyqx9axqwhyaca804ws46nn4gc1imbk94nzycyw"))
+
+(define rust-rand-0.8.5
+  (crate-source "rand" "0.8.5"
+                "013l6931nn7gkc23jz5mm3qdhf93jjf0fg64nz2lp4i51qd8vbrl"))
+
+(define rust-rand-0.9.2
+  (crate-source "rand" "0.9.2"
+                "1lah73ainvrgl7brcxx0pwhpnqa3sm3qaj672034jz8i0q7pgckd"))
+
+(define rust-rand-chacha-0.3.1
+  (crate-source "rand_chacha" "0.3.1"
+                "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6"))
+
+(define rust-rand-chacha-0.9.0
+  (crate-source "rand_chacha" "0.9.0"
+                "1jr5ygix7r60pz0s1cv3ms1f6pd1i9pcdmnxzzhjc3zn3mgjn0nk"))
+
+(define rust-rand-core-0.6.4
+  (crate-source "rand_core" "0.6.4"
+                "0b4j2v4cb5krak1pv6kakv4sz6xcwbrmy2zckc32hsigbrwy82zc"))
+
+(define rust-rand-core-0.9.5
+  (crate-source "rand_core" "0.9.5"
+                "0g6qc5r3f0hdmz9b11nripyp9qqrzb0xqk9piip8w8qlvqkcibvn"))
+
+(define rust-rand-distr-0.5.1
+  (crate-source "rand_distr" "0.5.1"
+                "0qvlzxq4a2rvrf3wq0xq1bfw8iy9zqm6jlmbywqzld6g1paib1ka"))
+
+(define rust-rand-xoshiro-0.7.0
+  (crate-source "rand_xoshiro" "0.7.0"
+                "0h9dv9mn703zb2z5dys7vc4rzy3az8xg99fc5m8zbnh0axkg80zp"))
+
+(define rust-rawpointer-0.2.1
+  (crate-source "rawpointer" "0.2.1"
+                "1qy1qvj17yh957vhffnq6agq0brvylw27xgks171qrah75wmg8v0"))
+
+(define rust-regex-automata-0.1.10
+  (crate-source "regex-automata" "0.1.10"
+                "0ci1hvbzhrfby5fdpf4ganhf7kla58acad9i1ff1p34dzdrhs8vc"))
+
+(define rust-rust-htslib-1.0.0
+  (crate-source "rust-htslib" "1.0.0"
+                "1abvjmpgqxxhnk3z0rg6rk5c725zblr86csz9i1ycwixiikn28gj"))
+
+(define rust-rustc-hash-2.1.1
+  (crate-source "rustc-hash" "2.1.1"
+                "03gz5lvd9ghcwsal022cgkq67dmimcgdjghfb5yb5d352ga06xrm"))
+
+(define rust-rustc-version-0.1.7
+  (crate-source "rustc_version" "0.1.7"
+                "1160jjsqhqr25cvhr48hmpp8v61bjvjcnxzb0cyf4373lmp3gxf5"))
+
+(define rust-ryu-1.0.20
+  (crate-source "ryu" "1.0.20"
+                "07s855l8sb333h6bpn24pka5sp7hjk2w667xy6a0khkf6sqv5lr8"))
+
+(define rust-safe-arch-0.7.4
+  (crate-source "safe_arch" "0.7.4"
+                "08sk47n1kcm5w2di6bpgi2hsw8r2caz2230pwqvbdqfv5pl2vc4n"))
+
+(define rust-scratch-1.0.9
+  (crate-source "scratch" "1.0.9"
+                "1cj826qggwn482wbfnzij5g9p411qszai0dnfld4qzh93g2jx3yn"))
+
+(define rust-simba-0.9.1
+  (crate-source "simba" "0.9.1"
+                "15gxgwcm6vs2wbbc5z4x8zsi1rhjl3nvqnxpl95hjrhnnaz894n9"))
+
+(define rust-spin-0.9.8
+  (crate-source "spin" "0.9.8"
+                "0rvam5r0p3a6qhc18scqpvpgb3ckzyqxpgdfyjnghh8ja7byi039"))
+
+(define rust-spoa-rs-0.1.0.6f4f102
+  ;; TODO: Define standalone package if this is a workspace.
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/AndreaGuarracino/spoa-rs.git")
+                        (commit "6f4f1024cc09959b926d4616991672693013ed3e")))
+    (file-name (git-file-name "rust-spoa-rs" "0.1.0.6f4f102"))
+    (sha256 (base32 "13hmxqk70c0728v8l44qap25qla4w86im3kwfmay7jwwg9lk7lfg"))
+    (patches
+     (list (local-file "patches/do-not-build-cplusplus-spoa.patch")))))
+
+(define rust-stable-deref-trait-1.2.1
+  (crate-source "stable_deref_trait" "1.2.1"
+                "15h5h73ppqyhdhx6ywxfj88azmrpml9gl6zp3pwy2malqa6vxqkc"))
+
+(define rust-strum-macros-0.26.4
+  (crate-source "strum_macros" "0.26.4"
+                "1gl1wmq24b8md527cpyd5bw9rkbqldd7k1h38kf5ajd2ln2ywssc"))
+
+(define rust-succinct-0.5.2
+  (crate-source "succinct" "0.5.2"
+                "0654c9gq50x7djyf25zbzz3d2pc4x3z21wmjj3qbr6d9h4hbd63p"))
+
+(define rust-syn-1.0.109
+  (crate-source "syn" "1.0.109"
+                "0ds2if4600bd59wsv7jjgfkayfzy3hnazs394kz6zdkmna8l3dkj"))
+
+(define rust-synstructure-0.13.2
+  (crate-source "synstructure" "0.13.2"
+                "1lh9lx3r3jb18f8sbj29am5hm9jymvbwh6jb1izsnnxgvgrp12kj"))
+
+(define rust-tap-1.0.1
+  (crate-source "tap" "1.0.1"
+                "0sc3gl4nldqpvyhqi3bbd0l9k7fngrcl4zs47n314nqqk4bpx4sm"))
+
+(define rust-termcolor-1.4.1
+  (crate-source "termcolor" "1.4.1"
+                "0mappjh3fj3p2nmrg4y7qv94rchwi9mzmgmfflr8p2awdj7lyy86"))
+
+(define rust-thiserror-2.0.16
+  (crate-source "thiserror" "2.0.16"
+                "1h30bqyjn5s9ypm668yd9849371rzwk185klwgjg503k2hadcrrl"))
+
+(define rust-thiserror-impl-2.0.16
+  (crate-source "thiserror-impl" "2.0.16"
+                "0q3r1ipr1rhff6cgrcvc0njffw17rpcqz9hdc7p754cbqkhinpkc"))
+
+(define rust-tinystr-0.8.2
+  (crate-source "tinystr" "0.8.2"
+                "0sa8z88axdsf088hgw5p4xcyi6g3w3sgbb6qdp81bph9bk2fkls2"))
+
+(define rust-unicode-width-0.2.2
+  (crate-source "unicode-width" "0.2.2"
+                "0m7jjzlcccw716dy9423xxh0clys8pfpllc5smvfxrzdf66h9b5l"))
+
+(define rust-unit-prefix-0.5.2
+  (crate-source "unit-prefix" "0.5.2"
+                "18xr6yhdvlxrv51y6js9npa3qhkzc5b1z4skr5kfzn7kkd449rc1"))
+
+(define rust-unty-0.0.4
+  (crate-source "unty" "0.0.4"
+                "1blhyv01qiv5sb72sal3xa1l8nzck3answawxkkiw3fd2x1phjbd"))
+
+(define rust-url-2.5.7
+  (crate-source "url" "2.5.7"
+                "0nzghdv0kcksyvri0npxbjzyx2ihprks5k590y77bld355m17g08"))
+
+(define rust-utf8-iter-1.0.4
+  (crate-source "utf8_iter" "1.0.4"
+                "1gmna9flnj8dbyd8ba17zigrp9c4c3zclngf5lnb5yvz1ri41hdn"))
+
+(define rust-vcpkg-0.2.15
+  (crate-source "vcpkg" "0.2.15"
+                "09i4nf5y8lig6xgj3f7fyrvzd3nlaw4znrihw8psidvv5yk4xkdc"))
+
+(define rust-virtue-0.0.18
+  (crate-source "virtue" "0.0.18"
+                "1cgp79pzzs117kjlc3jnnkixbyaqri12j40mx2an41qhrymv27h5"))
+
+(define rust-wasi-0.11.1+wasi-snapshot-preview1
+  (crate-source "wasi" "0.11.1+wasi-snapshot-preview1"
+                "0jx49r7nbkbhyfrfyhz0bm4817yrnxgd3jiwwwfv0zl439jyrwyc"))
+
+(define rust-wasm-bindgen-backend-0.2.102
+  (crate-source "wasm-bindgen-backend" "0.2.102"
+                "0cp7jgjj3c9dig1rpw79ymli9290jqf3nsmi48zw1lyw9c8684rs"))
+
+(define rust-web-time-1.1.0
+  (crate-source "web-time" "1.1.0"
+                "1fx05yqx83dhx628wb70fyy10yjfq1jpl20qfqhdkymi13rq0ras"))
+
+(define rust-wide-0.7.33
+  (crate-source "wide" "0.7.33"
+                "00yd2sg83xvfrjjlwndyk49fjx8jlmlrz8byigndig32rf7dmr8c"))
+
+(define rust-winapi-0.3.9
+  (crate-source "winapi" "0.3.9"
+                "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw"))
+
+(define rust-winapi-i686-pc-windows-gnu-0.4.0
+  (crate-source "winapi-i686-pc-windows-gnu" "0.4.0"
+                "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc"))
+
+(define rust-winapi-x86-64-pc-windows-gnu-0.4.0
+  (crate-source "winapi-x86_64-pc-windows-gnu" "0.4.0"
+                "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki"))
+
+(define rust-windows-link-0.1.3
+  (crate-source "windows-link" "0.1.3"
+                "12kr1p46dbhpijr4zbwr2spfgq8i8c5x55mvvfmyl96m01cx4sjy"))
+
+(define rust-windows-sys-0.60.2
+  ;; TODO: Check bundled sources.
+  (crate-source "windows-sys" "0.60.2"
+                "1jrbc615ihqnhjhxplr2kw7rasrskv9wj3lr80hgfd42sbj01xgj"))
+
+(define rust-writeable-0.6.2
+  (crate-source "writeable" "0.6.2"
+                "1fg08y97n6vk7l0rnjggw3xyrii6dcqg54wqaxldrlk98zdy1pcy"))
+
+(define rust-wyhash-0.5.0
+  (crate-source "wyhash" "0.5.0"
+                "15f26hvx6nyp4d6iswha7rm3psidxa2k2iab1f1aqgsyq9iy3xms"))
+
+(define rust-wyz-0.5.1
+  (crate-source "wyz" "0.5.1"
+                "1vdrfy7i2bznnzjdl9vvrzljvs4s3qm8bnlgqwln6a941gy61wq5"))
+
+(define rust-yoke-0.8.1
+  (crate-source "yoke" "0.8.1"
+                "0m29dm0bf5iakxgma0bj6dbmc3b8qi9b1vaw9sa76kdqmz3fbmkj"))
+
+(define rust-yoke-derive-0.8.1
+  (crate-source "yoke-derive" "0.8.1"
+                "0pbyja133jnng4mrhimzdq4a0y26421g734ybgz8wsgbfhl0andn"))
+
+(define rust-zerofrom-0.1.6
+  (crate-source "zerofrom" "0.1.6"
+                "19dyky67zkjichsb7ykhv0aqws3q0jfvzww76l66c19y6gh45k2h"))
+
+(define rust-zerofrom-derive-0.1.6
+  (crate-source "zerofrom-derive" "0.1.6"
+                "00l5niw7c1b0lf1vhvajpjmcnbdp2vn96jg4nmkhq2db0rp5s7np"))
+
+(define rust-zerotrie-0.2.3
+  (crate-source "zerotrie" "0.2.3"
+                "0lbqznlqazmrwwzslw0ci7p3pqxykrbfhq29npj0gmb2amxc2n9a"))
+
+(define rust-zerovec-0.11.5
+  (crate-source "zerovec" "0.11.5"
+                "00m0p47k2g9mkv505hky5xh3r6ps7v8qc0dy4pspg542jj972a3c"))
+
+(define rust-zerovec-derive-0.11.2
+  (crate-source "zerovec-derive" "0.11.2"
+                "1wsig4h5j7a1scd5hrlnragnazjny9qjc44hancb6p6a76ay7p7a"))
+
+(define rust-zlib-rs-0.6.2
+  (crate-source "zlib-rs" "0.6.2"
+                "1j1nf9nmmx9wcwf0mn22smpam7wb28sdz6fw6v8pwcq7227c8if7"))
+
+(define rust-fastga-rs-0.1.2.e7a6d93
+  ;; TODO REVIEW: Check bundled sources.
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/pangenome/fastga-rs")
+                        (commit "e7a6d93621e53d141df5fbecb47651564555d43b")))
+    (file-name (git-file-name "rust-fastga-rs" "0.1.2.e7a6d93"))
+    (sha256 (base32 "0s99i55j44rz3miywik3ms1l3mz6h63n5fmwvgjh4ywxw2k9r4p5"))))
+
+(define rust-gfasort-0.1.0.e23f45e
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/pangenome/gfasort")
+                        (commit "e23f45e94e2746f2817eb17925f53e0319b1b085")))
+    (file-name (git-file-name "rust-gfasort" "0.1.0.e23f45e"))
+    (sha256 (base32 "1jdjainfgz73xnz7j0bvgnc6ybqsp7qrj2k0nbzav5v70gy9sibs"))))
+
+(define rust-lib-wfa2-0.1.0.0fe1ebf
+  ;; TODO REVIEW: Check bundled sources.
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/AndreaGuarracino/lib_wfa2")
+                        (commit "0fe1ebfb7a364226f3d8d7b84b703611168435c6")))
+    (file-name (git-file-name "rust-lib-wfa2" "0.1.0.0fe1ebf"))
+    (sha256 (base32 "05rmy34x5xhqkw0v6sj35q2jijfg7rlh3gb1xjisblamy2g5nn29"))))
+
+(define rust-onecode-0.1.0.38182c7
+  ;; TODO REVIEW: Check bundled sources.
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/pangenome/onecode-rs")
+                        (commit "38182c7acf7cccc53509176b1d11001ae6ff2642")))
+    (file-name (git-file-name "rust-onecode" "0.1.0.38182c7"))
+    (sha256 (base32 "04wlrjlylhiks8pnhr19anf33r8ah1rnsl98n5j54sxrjvmhvyyf"))))
+
+(define rust-onecode-0.1.0.f531f5b
+  ;; TODO REVIEW: Check bundled sources.
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/pangenome/onecode-rs")
+                        (commit "f531f5b0ff54001a898ec4e0c0c761b2bd0a1f34")))
+    (file-name (git-file-name "rust-onecode" "0.1.0.f531f5b"))
+    (sha256 (base32 "0nzhgg7sqalrpl1mzlp0rvaj4dgcwghv1jngcsfqqk1mhx4hvj0n"))))
+
+(define rust-ragc-0.1.1.e9e4a6f
+  ;; This is a Cargo workspace (ragc-core and ragc-common members).
+  ;; crate-src? returns #f for workspaces (no [package] in root Cargo.toml).
+  ;; The impg package phase manually copies this to the vendor dir.
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/AndreaGuarracino/ragc")
+                        (commit "e9e4a6f880f5d6fa90fc90f24542def3ca637d38")))
+    (file-name (git-file-name "rust-ragc" "0.1.1.e9e4a6f"))
+    (sha256 (base32 "0ks74pgh0vjy4mzxvp7riq1rkf9zh9kqzhvvy8iys46zrbkxmhs7"))))
+
+(define rust-seqwish-0.1.3.a781924
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/pangenome/seqwish")
+                        (commit "a781924a1074f8177a24f8caa2b9be07d746acb0")))
+    (file-name (git-file-name "rust-seqwish" "0.1.3.a781924"))
+    (sha256 (base32 "17ii1659v5k1smnwzn7hm12dqw0l2zpflb20krwdb84xv75rnmgd"))))
+
+(define rust-sweepga-0.1.1.f591843
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/pangenome/sweepga")
+                        (commit "f5918434c1abadfad594b40392ad7c43e0da4af8")))
+    (file-name (git-file-name "rust-sweepga" "0.1.1.f591843"))
+    (sha256 (base32 "1clc295cvmis131aw5m2z5v8v16qfk7xxyawdx18iygwr5nbqbg9"))))
+
+(define rust-tpa-0.1.0.301dc3f
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/AndreaGuarracino/tpa")
+                        (commit "301dc3ff53482d993c065217dbcd8abb6ffff2d9")))
+    (file-name (git-file-name "rust-tpa" "0.1.0.301dc3f"))
+    (sha256 (base32 "18v0g2845pgzj3y002q4y04rav28ccr5gjxck7bc92jlrcl75mjk"))))
+
+(define rust-tracepoints-0.1.0.b737734
+  (origin
+    (method git-fetch)
+    (uri (git-reference (url "https://github.com/AndreaGuarracino/tracepoints")
+                        (commit "b73773433561fb36f21136776a7297c5877ab593")))
+    (file-name (git-file-name "rust-tracepoints" "0.1.0.b737734"))
+    (sha256 (base32 "0xyqvi01rvnmvwxbx6y413qjjci7d271xjpz1z0lkw1s2zc61h0c"))))
+
+;;;
+;;; Additional crate sources for impg transitive dependencies.
+;;;
+
+(define rust-derive-new-0.6.0
+  (crate-source "derive-new" "0.6.0"
+                "1b8jv6jx0b8jgkz9kmz0ciqmnf74xkk0mmvkb5z1c87932kdwl6i"))
+
+(define rust-bindgen-0.69.5
+  (crate-source "bindgen" "0.69.5"
+                "1240snlcfj663k04bjsg629g4wx6f83flgbjh5rzpgyagk3864r7"))
+
+(define rust-cbindgen-0.27.0
+  (crate-source "cbindgen" "0.27.0"
+                "1sqm3axr678d72yihgmpr9d17mj99ccibxfqhw53mgzwzkbqvkiz"))
+
+(define rust-chrono-0.4.44
+  (crate-source "chrono" "0.4.44"
+                "1c64mk9a235271j5g3v4zrzqqmd43vp9vki7vqfllpqf5rd0fwy6"))
+
+(define rust-console-0.16.2
+  (crate-source "console" "0.16.2"
+                "1i5y6h3myz38jl9p3gglx5vh9c69kxxajsv3jx0pw8i6i555mr03"))
+
+(define rust-core-foundation-sys-0.8.7
+  (crate-source "core-foundation-sys" "0.8.7"
+                "12w8j73lazxmr1z0h98hf3z623kl8ms7g07jch7n4p8f9nwlhdkp"))
+
+(define rust-fm-index-0.3.0
+  (crate-source "fm-index" "0.3.0"
+                "05dzsmdf1zpqsliwm06b5m2xapyppy1191mjya8bwpvc5gwi9x19"))
+
+(define rust-getrandom-0.2.17
+  (crate-source "getrandom" "0.2.17"
+                "1l2ac6jfj9xhpjjgmcx6s1x89bbnw9x6j9258yy6xjkzpq0bqapz"))
+
+(define rust-getrandom-0.4.1
+  (crate-source "getrandom" "0.4.1"
+                "1v7fm84f2jh6x7w3bd2ncl3sw29wnb0rhg7xya1pd30i02cg77hk"))
+
+(define rust-heck-0.4.1
+  (crate-source "heck" "0.4.1"
+                "1a7mqsnycv5z4z5vnv1k34548jzmc0ajic7c1j8jsaspnhw5ql4m"))
+
+(define rust-iana-time-zone-0.1.65
+  (crate-source "iana-time-zone" "0.1.65"
+                "0w64khw5p8s4nzwcf36bwnsmqzf61vpwk9ca1920x82bk6nwj6z3"))
+
+(define rust-iana-time-zone-haiku-0.1.2
+  (crate-source "iana-time-zone-haiku" "0.1.2"
+                "17r6jmj31chn7xs9698r122mapq85mfnv98bb4pg6spm0si2f67k"))
+
+(define rust-icu-properties-2.1.2
+  (crate-source "icu_properties" "2.1.2"
+                "1v3lbmhhi7i6jgw51ikjb1p50qh5rb67grlkdnkc63l7zq1gq2q2"))
+
+(define rust-icu-properties-data-2.1.2
+  (crate-source "icu_properties_data" "2.1.2"
+                "1bvpkh939rgzrjfdb7hz47v4wijngk0snmcgrnpwc9fpz162jv31"))
+
+(define rust-iitree-rs-0.1.1
+  (crate-source "iitree-rs" "0.1.1"
+                "1mg705qlj1qb92ra1fkr0rlqcphrkkfsnbsv4ysrvin82b5m959r"))
+
+(define rust-itertools-0.12.1
+  (crate-source "itertools" "0.12.1"
+                "0s95jbb3ndj1lvfxyq5wanc0fm0r6hg6q4ngb92qlfdxvci10ads"))
+
+(define rust-lazycell-1.3.0
+  (crate-source "lazycell" "1.3.0"
+                "0m8gw7dn30i0zjjpjdyf6pc16c34nl71lpv461mix50x3p70h3c3"))
+
+(define rust-libc-0.2.182
+  (crate-source "libc" "0.2.182"
+                "04k1w1mq9f4cxv520dbr5xw1i7xkbc9fcrvaggyjy25jdkdvl038"))
+
+(define rust-libm-0.2.16
+  (crate-source "libm" "0.2.16"
+                "10brh0a3qjmbzkr5mf5xqi887nhs5y9layvnki89ykz9xb1wxlmn"))
+
+(define rust-memmap2-0.9.10
+  (crate-source "memmap2" "0.9.10"
+                "1qz0n4ch68pz2mp07sdwnk27imdjjqy6aqir3hp9j4g0iw19hh3i"))
+
+(define rust-nom-5.1.3
+  (crate-source "nom" "5.1.3"
+                "0jyxc4d3pih60pp8hvzpg5ajh16s273cpnsdpzp04qv7g8w9m588"))
+
+(define rust-ordered-float-4.6.0
+  (crate-source "ordered-float" "4.6.0"
+                "0ldrcgilsiijd141vw51fbkziqmh5fpllil3ydhirjm67wdixdvv"))
+
+(define rust-parking-lot-0.12.5
+  (crate-source "parking_lot" "0.12.5"
+                "06jsqh9aqmc94j2rlm8gpccilqm6bskbd67zf6ypfc0f4m9p91ck"))
+
+(define rust-ppv-lite86-0.2.21
+  (crate-source "ppv-lite86" "0.2.21"
+                "1abxx6qz5qnd43br1dd9b2savpihzjza8gb4fbzdql1gxp2f7sl5"))
+
+(define rust-quote-1.0.44
+  (crate-source "quote" "1.0.44"
+                "1r7c7hxl66vz3q9qizgjhy77pdrrypqgk4ghc7260xvvfb7ypci1"))
+
+(define rust-ryu-1.0.23
+  (crate-source "ryu" "1.0.23"
+                "0zs70sg00l2fb9jwrf6cbkdyscjs53anrvai2hf7npyyfi5blx4p"))
+
+(define rust-semver-0.1.20
+  (crate-source "semver" "0.1.20"
+                "1b10m0hxrr947gp41lj9vnmgl5ddwx3d41vnblsg06ppvkz11x6l"))
+
+(define rust-serde-spanned-0.6.9
+  (crate-source "serde_spanned" "0.6.9"
+                "18vmxq6qfrm110caszxrzibjhy2s54n1g5w1bshxq9kjmz7y0hdz"))
+
+(define rust-sucds-0.8.3
+  (crate-source "sucds" "0.8.3"
+                "1k8ddiyv0lglcyqp7im5gzams3npmf5bnsajx82z2r5y0nm4wcnd"))
+
+(define rust-thiserror-2.0.18
+  (crate-source "thiserror" "2.0.18"
+                "1i7vcmw9900bvsmay7mww04ahahab7wmr8s925xc083rpjybb222"))
+
+(define rust-thiserror-impl-2.0.18
+  (crate-source "thiserror-impl" "2.0.18"
+                "1mf1vrbbimj1g6dvhdgzjmn6q09yflz2b92zs1j9n3k7cxzyxi7b"))
+
+(define rust-toml-0.8.23
+  (crate-source "toml" "0.8.23"
+                "0qnkrq4lm2sdhp3l6cb6f26i8zbnhqb7mhbmksd550wxdfcyn6yw"))
+
+(define rust-toml-datetime-0.6.11
+  (crate-source "toml_datetime" "0.6.11"
+                "077ix2hb1dcya49hmi1avalwbixmrs75zgzb3b2i7g2gizwdmk92"))
+
+(define rust-toml-edit-0.22.27
+  (crate-source "toml_edit" "0.22.27"
+                "16l15xm40404asih8vyjvnka9g0xs9i4hfb6ry3ph9g419k8rzj1"))
+
+(define rust-toml-write-0.1.2
+  (crate-source "toml_write" "0.1.2"
+                "008qlhqlqvljp1gpp9rn5cqs74gwvdgbvs92wnpq8y3jlz4zi6ax"))
+
+(define rust-url-2.5.8
+  (crate-source "url" "2.5.8"
+                "1v8f7nx3hpr1qh76if0a04sj08k86amsq4h8cvpw6wvk76jahrzz"))
+
+(define rust-vers-vecs-1.9.0
+  (crate-source "vers-vecs" "1.9.0"
+                "0m6bjzf36d8jix1lzv0kg6mg6vxrljjwj9sxg1zp65gzd5ly8rlv"))
+
+(define rust-windows-core-0.62.2
+  (crate-source "windows-core" "0.62.2"
+                "1swxpv1a8qvn3bkxv8cn663238h2jccq35ff3nsj61jdsca3ms5q"))
+
+(define rust-windows-implement-0.60.2
+  (crate-source "windows-implement" "0.60.2"
+                "1psxhmklzcf3wjs4b8qb42qb6znvc142cb5pa74rsyxm1822wgh5"))
+
+(define rust-windows-interface-0.59.3
+  (crate-source "windows-interface" "0.59.3"
+                "0n73cwrn4247d0axrk7gjp08p34x1723483jxjxjdfkh4m56qc9z"))
+
+(define rust-windows-result-0.4.1
+  (crate-source "windows-result" "0.4.1"
+                "1d9yhmrmmfqh56zlj751s5wfm9a2aa7az9rd7nn5027nxa4zm0bp"))
+
+(define rust-windows-strings-0.5.1
+  (crate-source "windows-strings" "0.5.1"
+                "14bhng9jqv4fyl7lqjz3az7vzh8pw0w4am49fsqgcz67d67x0dvq"))
+
+(define rust-winnow-0.7.14
+  (crate-source "winnow" "0.7.14"
+                "0a88ahjqhyn2ln1yplq2xsigm09kxqkdkkk2c2mfxkbzszln8lss"))
+
+(define rust-android-system-properties-0.1.5
+  (crate-source "android_system_properties" "0.1.5"
+                "04b3wrz12837j7mdczqd95b732gw5q7q66cv4yn4646lvccp57l1"))
+
+(define rust-uf-rush-0.1.1
+  (crate-source "uf_rush" "0.1.1"
+                "18sx8lvkhnx5gx131y4pqyl4xmdvcqwv8vb2vspfczifnrgxydw3"))
+
+
+;;;
+;;; Cargo inputs lookup tables.
+;;; Used by: (inputs (cargo-inputs 'gfainject #:module '(gn packages pangenome-rust)))
+;;; Used by: (inputs (cargo-inputs 'ragc-cli #:module '(gn packages pangenome-rust)))
+;;; Used by: (inputs (cargo-inputs 'onecode #:module '(gn packages pangenome-rust)))
+;;; Used by: (inputs (cargo-inputs 'fastga-rs #:module '(gn packages pangenome-rust)))
+;;; Used by: (inputs (cargo-inputs 'impg #:module '(gn packages pangenome-rust)))
+;;;
+
+(define-cargo-inputs lookup-cargo-inputs
+  (gfainject =>
+    (list rust-adler-1.0.2
+          rust-anyhow-1.0.66
+          rust-autocfg-1.1.0
+          rust-bit-vec-0.6.3
+          rust-bitflags-1.3.2
+          rust-btoi-0.4.2
+          rust-bytemuck-1.12.3
+          rust-byteorder-1.4.3
+          rust-bytes-1.2.1
+          rust-cfg-if-1.0.0
+          rust-crc32fast-1.3.2
+          rust-crossbeam-channel-0.5.6
+          rust-crossbeam-utils-0.8.12
+          rust-flate2-1.0.24
+          rust-hashbrown-0.12.3
+          rust-indexmap-1.9.1
+          rust-lexical-core-0.8.5
+          rust-lexical-parse-float-0.8.5
+          rust-lexical-parse-integer-0.8.6
+          rust-lexical-util-0.8.5
+          rust-lexical-write-float-0.8.5
+          rust-lexical-write-integer-0.8.5
+          rust-memchr-2.5.0
+          rust-miniz-oxide-0.5.4
+          rust-noodles-0.29.0
+          rust-noodles-bam-0.24.0
+          rust-noodles-bgzf-0.17.0
+          rust-noodles-core-0.9.0
+          rust-noodles-csi-0.11.0
+          rust-noodles-fasta-0.16.0
+          rust-noodles-sam-0.21.0
+          rust-num-traits-0.2.15
+          rust-pico-args-0.5.0
+          rust-retain-mut-0.1.7
+          rust-roaring-0.10.1
+          rust-rustc-hash-1.1.0
+          rust-static-assertions-1.1.0))
+  (ragc-cli =>
+    (list rust-adler2-2.0.1
+          rust-ahash-0.8.12
+          rust-aho-corasick-1.1.4
+          rust-allocator-api2-0.2.21
+          rust-anes-0.1.6
+          rust-anstream-0.6.21
+          rust-anstyle-1.0.13
+          rust-anstyle-parse-0.2.7
+          rust-anstyle-query-1.1.5
+          rust-anstyle-wincon-3.0.11
+          rust-anyhow-1.0.102
+          rust-arbitrary-chunks-0.4.1
+          rust-autocfg-1.5.0
+          rust-bincode-1.3.3
+          rust-bitflags-2.11.0
+          rust-block-buffer-0.10.4
+          rust-block-pseudorand-0.1.2
+          rust-bumpalo-3.20.2
+          rust-byteorder-1.5.0
+          rust-cast-0.3.0
+          rust-cc-1.2.56
+          rust-cfg-if-1.0.4
+          rust-chiapos-chacha8-0.1.0
+          rust-ciborium-0.2.2
+          rust-ciborium-io-0.2.2
+          rust-ciborium-ll-0.2.2
+          rust-clap-4.5.60
+          rust-clap-builder-4.5.60
+          rust-clap-derive-4.5.55
+          rust-clap-lex-1.0.0
+          rust-colorchoice-1.0.4
+          rust-cpufeatures-0.2.17
+          rust-crc32fast-1.5.0
+          rust-criterion-0.5.1
+          rust-criterion-plot-0.5.0
+          rust-crossbeam-0.8.4
+          rust-crossbeam-channel-0.5.15
+          rust-crossbeam-deque-0.8.6
+          rust-crossbeam-epoch-0.9.18
+          rust-crossbeam-queue-0.3.12
+          rust-crossbeam-utils-0.8.21
+          rust-crunchy-0.2.4
+          rust-crypto-common-0.1.7
+          rust-dashmap-6.1.0
+          rust-digest-0.10.7
+          rust-either-1.15.0
+          rust-equivalent-1.0.2
+          rust-errno-0.3.14
+          rust-fastrand-2.3.0
+          rust-find-msvc-tools-0.1.9
+          rust-flate2-1.1.9
+          rust-foldhash-0.1.5
+          rust-generic-array-0.14.7
+          rust-getrandom-0.3.4
+          rust-getrandom-0.4.2
+          rust-half-2.7.1
+          rust-hashbrown-0.14.5
+          rust-hashbrown-0.15.5
+          rust-hashbrown-0.16.1
+          rust-heck-0.5.0
+          rust-hermit-abi-0.5.2
+          rust-id-arena-2.3.0
+          rust-indexmap-2.13.0
+          rust-is-terminal-0.4.17
+          rust-is-terminal-polyfill-1.70.2
+          rust-itertools-0.10.5
+          rust-itoa-1.0.17
+          rust-jobserver-0.1.34
+          rust-js-sys-0.3.91
+          rust-leb128fmt-0.1.0
+          rust-libc-0.2.183
+          rust-linux-raw-sys-0.12.1
+          rust-lock-api-0.4.14
+          rust-log-0.4.29
+          rust-memchr-2.8.0
+          rust-miniz-oxide-0.8.9
+          rust-nanorand-0.6.1
+          rust-num-traits-0.2.19
+          rust-num-cpus-1.17.0
+          rust-once-cell-1.21.3
+          rust-once-cell-polyfill-1.70.2
+          rust-oorandom-11.1.5
+          rust-parking-lot-core-0.9.12
+          rust-partition-0.1.2
+          rust-pkg-config-0.3.32
+          rust-plotters-0.3.7
+          rust-plotters-backend-0.3.7
+          rust-plotters-svg-0.3.7
+          rust-prettyplease-0.2.37
+          rust-proc-macro2-1.0.106
+          rust-quote-1.0.45
+          rust-r-efi-5.3.0
+          rust-r-efi-6.0.0
+          rust-rayon-1.11.0
+          rust-rayon-core-1.13.0
+          rust-rdst-0.20.14
+          rust-redox-syscall-0.5.18
+          rust-regex-1.12.3
+          rust-regex-automata-0.4.14
+          rust-regex-syntax-0.8.10
+          rust-rustix-1.1.4
+          rust-rustversion-1.0.22
+          rust-same-file-1.0.6
+          rust-scopeguard-1.2.0
+          rust-semver-1.0.27
+          rust-serde-1.0.228
+          rust-serde-core-1.0.228
+          rust-serde-derive-1.0.228
+          rust-serde-json-1.0.149
+          rust-sha2-0.10.9
+          rust-shlex-1.3.0
+          rust-simd-adler32-0.3.8
+          rust-smallvec-1.15.1
+          rust-strsim-0.11.1
+          rust-syn-2.0.117
+          rust-tempfile-3.26.0
+          rust-thiserror-1.0.69
+          rust-thiserror-impl-1.0.69
+          rust-tikv-jemalloc-sys-0.5.4+5.3.0-patched
+          rust-tikv-jemallocator-0.5.4
+          rust-tinytemplate-1.2.1
+          rust-typenum-1.19.0
+          rust-unicode-ident-1.0.24
+          rust-unicode-xid-0.2.6
+          rust-utf8parse-0.2.2
+          rust-version-check-0.9.5
+          rust-voracious-radix-sort-1.2.0
+          rust-walkdir-2.5.0
+          rust-wasip2-1.0.2+wasi-0.2.9
+          rust-wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06
+          rust-wasm-bindgen-0.2.114
+          rust-wasm-bindgen-macro-0.2.114
+          rust-wasm-bindgen-macro-support-0.2.114
+          rust-wasm-bindgen-shared-0.2.114
+          rust-wasm-encoder-0.244.0
+          rust-wasm-metadata-0.244.0
+          rust-wasmparser-0.244.0
+          rust-web-sys-0.3.91
+          rust-winapi-util-0.1.11
+          rust-windows-link-0.2.1
+          rust-windows-sys-0.61.2
+          rust-wit-bindgen-0.51.0
+          rust-wit-bindgen-core-0.51.0
+          rust-wit-bindgen-rust-0.51.0
+          rust-wit-bindgen-rust-macro-0.51.0
+          rust-wit-component-0.244.0
+          rust-wit-parser-0.244.0
+          rust-zerocopy-0.8.40
+          rust-zerocopy-derive-0.8.40
+          rust-zmij-1.0.21
+          rust-zstd-0.13.3
+          rust-zstd-safe-7.2.4
+          rust-zstd-sys-2.0.16+zstd.1.5.7))
+  (onecode =>
+    (list rust-aho-corasick-1.1.3
+          rust-bindgen-0.70.1
+          rust-bitflags-2.9.4
+          rust-cc-1.2.40
+          rust-cexpr-0.6.0
+          rust-cfg-if-1.0.3
+          rust-clang-sys-1.8.1
+          rust-either-1.15.0
+          rust-find-msvc-tools-0.1.3
+          rust-glob-0.3.3
+          rust-itertools-0.13.0
+          rust-libc-0.2.176
+          rust-libloading-0.8.9
+          rust-log-0.4.28
+          rust-memchr-2.7.6
+          rust-minimal-lexical-0.2.1
+          rust-nom-7.1.3
+          rust-prettyplease-0.2.37
+          rust-proc-macro2-1.0.101
+          rust-quote-1.0.41
+          rust-regex-1.11.3
+          rust-regex-automata-0.4.11
+          rust-regex-syntax-0.8.6
+          rust-rustc-hash-1.1.0
+          rust-shlex-1.3.0
+          rust-syn-2.0.106
+          rust-unicode-ident-1.0.19
+          rust-windows-link-0.2.1))
+  (fastga-rs =>
+    (list rust-aho-corasick-1.1.3
+          rust-anyhow-1.0.100
+          rust-bindgen-0.70.1
+          rust-bitflags-2.10.0
+          rust-cc-1.2.43
+          rust-cexpr-0.6.0
+          rust-cfg-if-1.0.4
+          rust-clang-sys-1.8.1
+          rust-diff-0.1.13
+          rust-either-1.15.0
+          rust-errno-0.3.14
+          rust-fastrand-2.3.0
+          rust-find-msvc-tools-0.1.4
+          rust-getrandom-0.3.4
+          rust-glob-0.3.3
+          rust-hermit-abi-0.5.2
+          rust-home-0.5.12
+          rust-itertools-0.13.0
+          rust-libc-0.2.177
+          rust-libloading-0.8.9
+          rust-linux-raw-sys-0.11.0
+          rust-linux-raw-sys-0.4.15
+          rust-log-0.4.28
+          rust-memchr-2.7.6
+          rust-minimal-lexical-0.2.1
+          rust-nix-0.27.1
+          rust-nom-7.1.3
+          rust-num-cpus-1.17.0
+          rust-once-cell-1.21.3
+          rust-onecode-0.1.0
+          rust-pkg-config-0.3.32
+          rust-pretty-assertions-1.4.1
+          rust-prettyplease-0.2.37
+          rust-proc-macro2-1.0.103
+          rust-quote-1.0.41
+          rust-r-efi-5.3.0
+          rust-regex-1.12.2
+          rust-regex-automata-0.4.13
+          rust-regex-syntax-0.8.8
+          rust-rustc-hash-1.1.0
+          rust-rustix-0.38.44
+          rust-rustix-1.1.2
+          rust-shlex-1.3.0
+          rust-syn-2.0.108
+          rust-tempfile-3.23.0
+          rust-thiserror-1.0.69
+          rust-thiserror-impl-1.0.69
+          rust-unicode-ident-1.0.20
+          rust-wasip2-1.0.1+wasi-0.2.4
+          rust-which-6.0.3
+          rust-windows-aarch64-gnullvm-0.52.6
+          rust-windows-aarch64-msvc-0.52.6
+          rust-windows-i686-gnu-0.52.6
+          rust-windows-i686-gnullvm-0.52.6
+          rust-windows-i686-msvc-0.52.6
+          rust-windows-link-0.2.1
+          rust-windows-sys-0.59.0
+          rust-windows-sys-0.61.2
+          rust-windows-targets-0.52.6
+          rust-windows-x86-64-gnu-0.52.6
+          rust-windows-x86-64-gnullvm-0.52.6
+          rust-windows-x86-64-msvc-0.52.6
+          rust-winsafe-0.0.19
+          rust-wit-bindgen-0.46.0
+          rust-yansi-1.0.1))
+  (impg =>
+    (list rust-adler2-2.0.1
+          rust-aho-corasick-1.1.4
+          rust-anstream-0.6.21
+          rust-anstyle-1.0.13
+          rust-anstyle-parse-0.2.7
+          rust-anstyle-query-1.1.5
+          rust-anstyle-wincon-3.0.11
+          rust-anyhow-1.0.102
+          rust-approx-0.5.1
+          rust-arrayvec-0.5.2
+          rust-autocfg-1.5.0
+          rust-bgzip-0.3.1
+          rust-bincode-2.0.1
+          rust-bincode-derive-2.0.1
+          rust-bio-types-1.0.4
+          rust-bitflags-1.3.2
+          rust-bitflags-2.11.0
+          rust-bitvec-1.0.1
+          rust-boomphf-0.5.9
+          rust-bstr-0.2.17
+          rust-bumpalo-3.20.2
+          rust-bytemuck-1.25.0
+          rust-bytemuck-derive-1.10.2
+          rust-byteorder-1.5.0
+          rust-bytes-1.11.1
+          rust-bzip2-0.5.2
+          rust-bzip2-sys-0.1.13+1.0.8
+          rust-cc-1.2.56
+          rust-cfg-if-1.0.4
+          rust-clap-4.5.60
+          rust-clap-builder-4.5.60
+          rust-clap-derive-4.5.55
+          rust-clap-lex-1.0.0
+          rust-cmake-0.1.57
+          rust-codespan-reporting-0.13.1
+          rust-coitrees-0.4.0
+          rust-colorchoice-1.0.4
+          rust-console-0.16.1
+          rust-core-affinity-0.8.3
+          rust-crc32fast-1.5.0
+          rust-crossbeam-channel-0.5.15
+          rust-crossbeam-deque-0.8.6
+          rust-crossbeam-epoch-0.9.18
+          rust-crossbeam-utils-0.8.21
+          rust-custom-derive-0.1.7
+          rust-cxx-1.0.194
+          rust-cxx-build-1.0.194
+          rust-cxxbridge-cmd-1.0.194
+          rust-cxxbridge-flags-1.0.194
+          rust-cxxbridge-macro-1.0.194
+          rust-derive-new-0.5.9
+          rust-derive-new-0.7.0
+          rust-displaydoc-0.2.5
+          rust-either-1.15.0
+          rust-encode-unicode-1.0.0
+          rust-env-filter-1.0.0
+          rust-env-logger-0.11.9
+          rust-equivalent-1.0.2
+          rust-errno-0.3.14
+          rust-fastga-rs-0.1.2.e7a6d93
+          rust-fastrand-2.3.0
+          rust-find-msvc-tools-0.1.9
+          rust-flate2-1.1.9
+          rust-flume-0.11.1
+          rust-fnv-1.0.7
+          rust-foldhash-0.2.0
+          rust-form-urlencoded-1.2.2
+          rust-fs-utils-1.1.4
+          rust-funty-2.0.0
+          rust-futures-core-0.3.32
+          rust-futures-sink-0.3.32
+          rust-getrandom-0.2.16
+          rust-getrandom-0.3.3
+          rust-gfa-0.10.1
+          rust-gfasort-0.1.0.e23f45e
+          rust-glob-0.3.3
+          rust-gzp-1.0.1
+          rust-handlegraph-0.7.0-alpha.9.3ac575e
+          rust-hashbrown-0.16.1
+          rust-heck-0.5.0
+          rust-hermit-abi-0.5.2
+          rust-hts-sys-2.2.0
+          rust-icu-collections-2.1.1
+          rust-icu-locale-core-2.1.1
+          rust-icu-normalizer-2.1.1
+          rust-icu-normalizer-data-2.1.1
+          rust-icu-properties-2.0.1
+          rust-icu-properties-data-2.0.1
+          rust-icu-provider-2.1.1
+          rust-idna-1.1.0
+          rust-idna-adapter-1.2.1
+          rust-ieee754-0.2.6
+          rust-indexmap-2.13.0
+          rust-indicatif-0.18.4
+          rust-is-terminal-polyfill-1.70.2
+          rust-jiff-0.2.22
+          rust-jiff-static-0.2.22
+          rust-jobserver-0.1.34
+          rust-js-sys-0.3.91
+          rust-lazy-static-1.5.0
+          rust-lexical-core-0.7.6
+          rust-lib-wfa2-0.1.0.0fe1ebf
+          rust-libc-0.2.175
+          rust-libdeflate-sys-1.25.2
+          rust-libdeflater-1.25.2
+          rust-liblzma-0.3.6
+          rust-liblzma-sys-0.3.13
+          rust-libz-ng-sys-1.1.24
+          rust-libz-rs-sys-0.5.2
+          rust-libz-sys-1.1.24
+          rust-linear-map-1.2.0
+          rust-link-cplusplus-1.0.12
+          rust-linux-raw-sys-0.12.1
+          rust-litemap-0.8.1
+          rust-lock-api-0.4.14
+          rust-log-0.4.29
+          rust-matrixmultiply-0.3.10
+          rust-memchr-2.8.0
+          rust-memmap-0.7.0
+          rust-miniz-oxide-0.8.9
+          rust-nalgebra-0.33.2
+          rust-nalgebra-macros-0.2.2
+          rust-nanorand-0.7.0
+          rust-natord-1.0.9
+          rust-newtype-derive-0.1.6
+          rust-niffler-3.0.0
+          rust-nom-7.1.3
+          rust-noodles-0.100.0
+          rust-noodles-bgzf-0.42.0
+          rust-num-bigint-0.4.6
+          rust-num-complex-0.4.6
+          rust-num-integer-0.1.46
+          rust-num-rational-0.4.2
+          rust-num-traits-0.2.19
+          rust-num-cpus-1.17.0
+          rust-once-cell-1.21.3
+          rust-once-cell-polyfill-1.70.2
+          rust-onecode-0.1.0.38182c7
+          rust-onecode-0.1.0.f531f5b
+          rust-paste-1.0.15
+          rust-percent-encoding-2.3.2
+          rust-pkg-config-0.3.32
+          rust-portable-atomic-1.13.1
+          rust-portable-atomic-util-0.2.5
+          rust-potential-utf-0.1.4
+          rust-proc-macro2-1.0.106
+          rust-quick-error-1.2.3
+          rust-quote-1.0.40
+          rust-r-efi-5.3.0
+          rust-radium-0.7.0
+          rust-ragc-0.1.1.e9e4a6f
+          rust-rand-0.8.5
+          rust-rand-0.9.2
+          rust-rand-chacha-0.3.1
+          rust-rand-chacha-0.9.0
+          rust-rand-core-0.6.4
+          rust-rand-core-0.9.5
+          rust-rand-distr-0.5.1
+          rust-rand-xoshiro-0.7.0
+          rust-rawpointer-0.2.1
+          rust-rayon-1.11.0
+          rust-rayon-core-1.13.0
+          rust-regex-1.12.3
+          rust-regex-automata-0.1.10
+          rust-regex-automata-0.4.14
+          rust-regex-syntax-0.8.10
+          rust-rust-htslib-1.0.0
+          rust-rustc-hash-2.1.1
+          rust-rustc-version-0.1.7
+          rust-rustix-1.1.4
+          rust-rustversion-1.0.22
+          rust-ryu-1.0.20
+          rust-safe-arch-0.7.4
+          rust-scopeguard-1.2.0
+          rust-scratch-1.0.9
+          rust-semver-1.0.27
+          rust-sha2-0.10.9
+          rust-digest-0.10.7
+          rust-crypto-common-0.1.7
+          rust-block-buffer-0.10.4
+          rust-generic-array-0.14.7
+          rust-cpufeatures-0.2.17
+          rust-seqwish-0.1.3.a781924
+          rust-serde-1.0.228
+          rust-serde-core-1.0.228
+          rust-serde-derive-1.0.228
+          rust-shlex-1.3.0
+          rust-simba-0.9.1
+          rust-smallvec-1.15.1
+          rust-spin-0.9.8
+          rust-spoa-rs-0.1.0.6f4f102
+          rust-stable-deref-trait-1.2.1
+          rust-static-assertions-1.1.0
+          rust-strsim-0.11.1
+          rust-strum-macros-0.26.4
+          rust-succinct-0.5.2
+          rust-sweepga-0.1.1.f591843
+          rust-syn-1.0.109
+          rust-syn-2.0.117
+          rust-synstructure-0.13.2
+          rust-tap-1.0.1
+          rust-tempfile-3.26.0
+          rust-termcolor-1.4.1
+          rust-thiserror-1.0.69
+          rust-thiserror-2.0.16
+          rust-thiserror-impl-1.0.69
+          rust-thiserror-impl-2.0.16
+          rust-tinystr-0.8.2
+          rust-tpa-0.1.0.301dc3f
+          rust-tracepoints-0.1.0.b737734
+          rust-typenum-1.19.0
+          rust-unicode-ident-1.0.24
+          rust-unicode-width-0.2.2
+          rust-unit-prefix-0.5.2
+          rust-unty-0.0.4
+          rust-url-2.5.7
+          rust-utf8-iter-1.0.4
+          rust-utf8parse-0.2.2
+          rust-vcpkg-0.2.15
+          rust-version-check-0.9.5
+          rust-virtue-0.0.18
+          rust-wasi-0.11.1+wasi-snapshot-preview1
+          rust-wasip2-1.0.2+wasi-0.2.9
+          rust-wasm-bindgen-0.2.114
+          rust-wasm-bindgen-backend-0.2.102
+          rust-wasm-bindgen-macro-0.2.114
+          rust-wasm-bindgen-macro-support-0.2.114
+          rust-wasm-bindgen-shared-0.2.114
+          rust-web-time-1.1.0
+          rust-wide-0.7.33
+          rust-winapi-0.3.9
+          rust-winapi-i686-pc-windows-gnu-0.4.0
+          rust-winapi-util-0.1.11
+          rust-winapi-x86-64-pc-windows-gnu-0.4.0
+          rust-windows-link-0.1.3
+          rust-windows-link-0.2.1
+          rust-windows-sys-0.60.2
+          rust-windows-sys-0.61.2
+          rust-windows-targets-0.52.6
+          rust-windows-aarch64-gnullvm-0.52.6
+          rust-windows-aarch64-msvc-0.52.6
+          rust-windows-i686-gnu-0.52.6
+          rust-windows-i686-gnullvm-0.52.6
+          rust-windows-i686-msvc-0.52.6
+          rust-windows-x86-64-gnu-0.52.6
+          rust-windows-x86-64-gnullvm-0.52.6
+          rust-windows-x86-64-msvc-0.52.6
+          rust-wit-bindgen-0.51.0
+          rust-writeable-0.6.2
+          rust-wyhash-0.5.0
+          rust-wyz-0.5.1
+          rust-yoke-0.8.1
+          rust-yoke-derive-0.8.1
+          rust-zerofrom-0.1.6
+          rust-zerofrom-derive-0.1.6
+          rust-zerotrie-0.2.3
+          rust-zerovec-0.11.5
+          rust-zerovec-derive-0.11.2
+          rust-zlib-rs-0.6.2
+          rust-zstd-0.13.3
+          rust-zstd-safe-7.2.4
+          rust-zstd-sys-2.0.16+zstd.1.5.7
+          ;; Transitive dependencies of git-sourced crates
+          rust-ahash-0.8.12
+          rust-allocator-api2-0.2.21
+          rust-android-system-properties-0.1.5
+          rust-arbitrary-chunks-0.4.1
+          rust-bincode-1.3.3
+          rust-bindgen-0.69.5
+          rust-bindgen-0.70.1
+          rust-block-pseudorand-0.1.2
+          rust-cbindgen-0.27.0
+          rust-cexpr-0.6.0
+          rust-chiapos-chacha8-0.1.0
+          rust-chrono-0.4.44
+          rust-clang-sys-1.8.1
+          rust-console-0.16.2
+          rust-core-foundation-sys-0.8.7
+          rust-crossbeam-0.8.4
+          rust-crossbeam-queue-0.3.12
+          rust-crunchy-0.2.4
+          rust-dashmap-6.1.0
+          rust-derive-new-0.6.0
+          rust-fm-index-0.3.0
+          rust-foldhash-0.1.5
+          rust-getrandom-0.2.17
+          rust-getrandom-0.3.4
+          rust-getrandom-0.4.1
+          rust-hashbrown-0.14.5
+          rust-hashbrown-0.15.5
+          rust-heck-0.4.1
+          rust-home-0.5.12
+          rust-iana-time-zone-0.1.65
+          rust-iana-time-zone-haiku-0.1.2
+          rust-icu-properties-2.1.2
+          rust-icu-properties-data-2.1.2
+          rust-id-arena-2.3.0
+          rust-iitree-rs-0.1.1
+          rust-is-terminal-0.4.17
+          rust-itertools-0.10.5
+          rust-itertools-0.12.1
+          rust-itertools-0.13.0
+          rust-itoa-1.0.17
+          rust-lazycell-1.3.0
+          rust-leb128fmt-0.1.0
+          rust-libc-0.2.182
+          rust-libloading-0.8.9
+          rust-libm-0.2.16
+          rust-linux-raw-sys-0.4.15
+          rust-memmap2-0.9.10
+          rust-minimal-lexical-0.2.1
+          rust-nanorand-0.6.1
+          rust-nix-0.27.1
+          rust-nom-5.1.3
+          rust-onecode-0.1.0
+          rust-ordered-float-4.6.0
+          rust-parking-lot-0.12.5
+          rust-parking-lot-core-0.9.12
+          rust-partition-0.1.2
+          rust-ppv-lite86-0.2.21
+          rust-prettyplease-0.2.37
+          rust-quote-1.0.44
+          rust-rdst-0.20.14
+          rust-redox-syscall-0.5.18
+          rust-rustc-hash-1.1.0
+          rust-rustix-0.38.44
+          rust-ryu-1.0.23
+          rust-same-file-1.0.6
+          rust-semver-0.1.20
+          rust-serde-json-1.0.149
+          rust-serde-spanned-0.6.9
+          rust-simd-adler32-0.3.8
+          rust-sucds-0.8.3
+          rust-thiserror-2.0.18
+          rust-thiserror-impl-2.0.18
+          rust-tikv-jemalloc-sys-0.5.4+5.3.0-patched
+          rust-tikv-jemallocator-0.5.4
+          rust-toml-0.8.23
+          rust-toml-datetime-0.6.11
+          rust-toml-edit-0.22.27
+          rust-toml-write-0.1.2
+          rust-uf-rush-0.1.1
+          rust-unicode-xid-0.2.6
+          rust-url-2.5.8
+          rust-vers-vecs-1.9.0
+          rust-voracious-radix-sort-1.2.0
+          rust-walkdir-2.5.0
+          rust-windows-core-0.62.2
+          rust-windows-implement-0.60.2
+          rust-windows-interface-0.59.3
+          rust-windows-result-0.4.1
+          rust-windows-strings-0.5.1
+          rust-winnow-0.7.14
+          rust-zerocopy-0.8.40
+          rust-zerocopy-derive-0.8.40
+          rust-zmij-1.0.21
+          ;; Dev/build dependencies of transitive crates
+          rust-anes-0.1.6
+          rust-cast-0.3.0
+          rust-ciborium-0.2.2
+          rust-ciborium-io-0.2.2
+          rust-ciborium-ll-0.2.2
+          rust-criterion-0.5.1
+          rust-criterion-plot-0.5.0
+          rust-half-2.7.1
+          rust-oorandom-11.1.5
+          rust-plotters-0.3.7
+          rust-plotters-backend-0.3.7
+          rust-plotters-svg-0.3.7
+          rust-tinytemplate-1.2.1
+          rust-wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06
+          rust-wasm-encoder-0.244.0
+          rust-wasm-metadata-0.244.0
+          rust-wasmparser-0.244.0
+          rust-web-sys-0.3.91
+          rust-which-6.0.3
+          rust-windows-sys-0.59.0
+          rust-winsafe-0.0.19
+          rust-wit-bindgen-core-0.51.0
+          rust-wit-bindgen-rust-0.51.0
+          rust-wit-bindgen-rust-macro-0.51.0
+          rust-wit-component-0.244.0
+          rust-wit-parser-0.244.0)))
+
+;;;
+;;; Main package.
+;;;
+
+(define-public gfainject
+  (let ((commit "e56cba362047e7137352858dfba5f56e944cbf06")
+        (revision "0"))
+    (package
+      (name "gfainject")
+      (version (git-version "0.1.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/chfi/gfainject")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1kv1abwwj1m5d7y61ymrrj309bg543vk5dlfq56h5d4qswmb7zyv"))))
+      (build-system cargo-build-system)
+      (arguments (list #:install-source? #f))
+      ;; No upstream test data; tests require GFA/BAM input files.
+      (inputs (cargo-inputs 'gfainject #:module '(gn packages pangenome-rust)))
+      (home-page "https://github.com/chfi/gfainject")
+      (synopsis "Map BAM alignments to GFA graph paths as GAF records")
+      (description
+       "Gfainject maps read alignments from a BAM file to reference paths in a
+GFA format graph, producing output in GAF format.  The alignment reference
+names must match the path names in the GFA.")
+      (license license:expat))))
+
+(define-public rust-onecode
+  (let ((commit "f531f5b0ff54001a898ec4e0c0c761b2bd0a1f34")
+        (revision "0"))
+    (package
+      (name "rust-onecode")
+      (version (git-version "0.1.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/pangenome/onecode-rs")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0nzhgg7sqalrpl1mzlp0rvaj4dgcwghv1jngcsfqqk1mhx4hvj0n"))))
+      (build-system cargo-build-system)
+      (arguments
+       (list #:install-source? #f))
+      (inputs (cargo-inputs 'onecode #:module '(gn packages pangenome-rust)))
+      (home-page "https://github.com/pangenome/onecode-rs")
+      (synopsis "Rust bindings for ONEcode genomic data format")
+      (description
+       "This package provides Rust FFI bindings for ONEcode, a simple and
+efficient data representation format for genomic data.  ONEcode provides both
+human-readable ASCII and compressed binary file formats with strongly typed
+data.  The C library (ONElib) is bundled and compiled at build time.")
+      (license license:expat))))
+
+(define-public ragc
+  (let ((commit "e9e4a6f880f5d6fa90fc90f24542def3ca637d38")
+        (revision "0"))
+    (package
+      (name "ragc")
+      (version (git-version "0.1.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/AndreaGuarracino/ragc")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0ks74pgh0vjy4mzxvp7riq1rkf9zh9kqzhvvy8iys46zrbkxmhs7"))))
+      (build-system cargo-build-system)
+      (native-inputs (list pkg-config))
+      (inputs (cons `(,zstd "lib") (cargo-inputs 'ragc-cli #:module '(gn packages pangenome-rust))))
+      (arguments
+       (list #:install-source? #f
+             ;; Tests use unstable feature unsigned_is_multiple_of (nightly only)
+             #:tests? #f
+             #:cargo-build-flags ''("--release" "--package" "ragc-cli")
+             ;; Workspace root has no [[bin]], must specify the CLI member
+             #:cargo-install-paths ''("ragc-cli")))
+      (home-page "https://github.com/AndreaGuarracino/ragc")
+      (synopsis "Genome compression tool implementing the AGC format in Rust")
+      (description
+       "Ragc (Rust AGC) implements the Adaptive Genome Compressor (AGC) format
+in pure Rust.  It provides high-ratio compression for large collections of
+similar genome sequences and is compatible with the C++ AGC format.")
+      (license license:expat))))
+
+(define-public fastga-rs
+  (let ((commit "c0bf6202506f51c77e47cf8707e58b7b61e2b621")
+        (revision "0"))
+    (package
+      (name "fastga-rs")
+      (version (git-version "0.1.2" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/pangenome/fastga-rs")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0zb385qk943v6xypbza8av6qhh2j26m76qkpzmlwyp9xhbn7j26i"))))
+      (build-system cargo-build-system)
+      (native-inputs (list pkg-config clang))
+      (inputs (cons zlib (cargo-inputs 'fastga-rs #:module '(gn packages pangenome-rust))))
+      (arguments
+       (list #:install-source? #f
+             ;; Tests require FastGA utilities built in OUT_DIR and genome data files
+             #:tests? #f
+             #:phases
+             #~(modify-phases %standard-phases
+                 (add-after 'unpack 'fix-sources
+                   ;; Cargo.toml uses a git source for onecode but Cargo.lock
+                   ;; resolved it to the registry version 0.1.0.
+                   (lambda _
+                     (substitute* "Cargo.toml"
+                       (("onecode = \\{ git = \"[^\"]*\" \\}")
+                        "onecode = \"0.1.0\""))))
+                 (add-before 'build 'patch-home-msrv
+                   ;; home 0.5.12 declares rust-version = "1.88" but Guix ships
+                   ;; rustc 1.85.1.  The 'configure phase extracts inputs with
+                   ;; strip-store-file-name as directory names, so home ends up
+                   ;; at guix-vendor/rust-home-0.5.12.tar.gz/.
+                   (lambda _
+                     (substitute* "guix-vendor/rust-home-0.5.12.tar.gz/Cargo.toml"
+                       (("rust-version = \"[^\"]*\"\n") "")))))))
+      (home-page "https://github.com/pangenome/fastga-rs")
+      (synopsis "Rust bindings for FastGA genome aligner with extended CIGAR support")
+      (description
+       "FastGA-RS provides Rust bindings for FastGA, a fast genome aligner.
+It compiles FastGA's C code directly and exposes an API for pairwise genome
+alignment with extended CIGAR output.  The bundled FastGA utilities are built
+at compile time and embedded in the binary.")
+      (license license:expat))))
+
+;;;
+;;; Spoa (required by impg via spoa-rs).
+;;;
+
+(define biosoup-0.11.0
+  (package
+    (inherit biosoup)
+    (name "biosoup")
+    (version "0.11.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rvaser/biosoup")
+             (commit "3e31aa1d9039a2689241aebd18c45933b2d0f5e3")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0vn1hj3h152iwahnrzghqll34qaphchi07klb3j70vgc248micbz"))))))
+
+(define bioparser-3.1.0
+  (package
+    (inherit bioparser)
+    (name "bioparser")
+    (version "3.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rvaser/bioparser")
+             (commit "4fa7126293d2a0eb90125b58fb704f0eed33ffe0")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "057zb3g8qyvbkbfzgkygrf0iphz3v4icm13pchxzrafiy7zkbmrq"))))
+    (inputs
+     (modify-inputs (package-inputs bioparser)
+       (replace "biosoup" biosoup-0.11.0)))))
+
+(define-public spoa
+  (let ((commit "08957f6b87ce4262358a88c6b2c3c7860cf60239"))
+    (package
+      (name "spoa")
+      (version "4.0.8")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url "https://github.com/rvaser/spoa")
+                                    (commit commit)))
+                (file-name (git-file-name "spoa" (string-append version "-" (string-take commit 7))))
+                (sha256 (base32 "0vafy9ry3cdrymxshcfmiv4schb0va3yxb6g3p20l54wl8alhxfj"))))
+      (build-system meson-build-system)
+      ;; googletest 1.17.0 requires C++14 but spoa builds with -std=c++11.
+      (arguments
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'remove-test-subdir
+              (lambda _
+                (substitute* "meson.build"
+                  ((".*gtest.*\n") "")
+                  (("subdir\\('test'\\).*\n") "")))))))
+      (inputs (list zlib
+                    simde
+                    biosoup-0.11.0
+                    bioparser-3.1.0
+                    pkg-config
+                    cpu-features
+                    cmake-minimal))
+      (synopsis "C++ implementation of the Partial Order Alignment algorithm")
+      (description "Spoa (SIMD POA) is a C++ implementation of the partial order
+alignment (POA) algorithm used to generate consensus sequences.  It supports
+local, global and semi-global alignment modes with linear, affine and convex
+gap modes.")
+      (license license:expat)
+      (home-page "https://github.com/rvaser/spoa"))))
+
+;;;
+;;; wfa2-lib (required by impg via lib_wfa2 crate).
+;;;
+
+(define wfa2-lib/our
+  (let ((commit "380eb31bb6be7b7043c86fb5d8ab51d7a3ba25b8")
+        (revision "2"))
+    (package
+      (name "wfa2-lib")
+      (version (git-version "2.3.5" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/smarco/WFA2-lib")
+                       (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "1xhlgr7rrb8m3nhf7d4g6xqjdziv9dz2xsd80kljhkm7ml7x7161"))
+                (snippet
+                 #~(begin
+                     (use-modules ((guix build utils)))
+                     (substitute* "Makefile"
+                       (("-march=native") ""))))))
+      (build-system gnu-build-system)
+      (arguments
+       (list
+         #:tests? #f            ; No tests.
+         #:parallel-build? #f   ; Race condition in Makefile.
+         #:modules '((guix build gnu-build-system)
+                     (guix build utils)
+                     (srfi srfi-26))
+         #:make-flags
+         #~(list (string-append "CC=" #$(cc-for-target))
+                 (string-append "CPP=" #$(cxx-for-target)))
+         #:phases
+         #~(modify-phases %standard-phases
+             (delete 'configure)        ; No configure script.
+             ;; -flto breaks align_benchmark.
+             (replace 'build
+               (lambda* (#:key (make-flags '()) #:allow-other-keys)
+                 (apply invoke "make" "all" make-flags)))
+             (replace 'install
+               (lambda _
+                 (for-each
+                   (cut install-file <> (string-append #$output "/bin"))
+                   (find-files "bin"))
+                 (for-each
+                   (cut install-file <> (string-append #$output "/lib"))
+                   (find-files "lib"))
+                 (for-each
+                   (lambda (file)
+                     (mkdir-p (string-append #$output "/include/wfa2-lib/" (dirname file)))
+                     (copy-file file (string-append #$output "/include/wfa2-lib/" file)))
+                   (find-files "." "\\.(h|hpp)$")))))))
+      (home-page "https://github.com/smarco/WFA2-lib")
+      (synopsis "Wavefront alignment algorithm library")
+      (description "The wavefront alignment (WFA) algorithm is an exact
+gap-affine algorithm that takes advantage of homologous regions between the
+sequences to accelerate the alignment process.")
+      (properties '((tunable? . #t)))
+      (license license:expat))))
+
+(define wfa2-lib-static
+  (package
+    (inherit (static-package wfa2-lib/our))
+    (name "wfa2-lib-static")
+    (arguments
+     (substitute-keyword-arguments (package-arguments wfa2-lib/our)
+       ((#:make-flags flags ''())
+        #~(cons* "CC_FLAGS+=-static -fPIC" "CFLAGS+=-fPIC" #$flags))))))
+
+;;;
+;;; impg package.
+;;;
+
+(define-public impg
+  (let ((commit "748bd5e43ff81ac7bedc28b6e79b9c3b2aa08486")
+        (revision "0"))
+    (package
+      (name "impg")
+      (version (git-version "0.4.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/pangenome/impg")
+                      (commit commit)
+                      (recursive? #t)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1j1xgh0kv7hm8xfla2bg11iq9nm9lry6awcm84iqczvvy4vf26i2"))))
+      (build-system cargo-build-system)
+      (arguments
+       (list
+        #:install-source? #f
+        ;; Tests require input data files not shipped in the repo
+        #:tests? #f
+        #:phases
+        #~(modify-phases %standard-phases
+            ;; The ragc workspace root has no [package] so crate-src? returns #f
+            ;; and configure skips it.  Copy it manually.
+            (add-before 'build 'copy-ragc-workspace
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((src (assoc-ref inputs "rust-ragc-0.1.1.e9e4a6f-checkout")))
+                  (copy-recursively src "ragc-workspace"))))
+            (add-before 'build 'fix-dependency-sources
+              (lambda _
+                (substitute* "Cargo.toml"
+                  ;; spoa-rs
+                  (("git = \"https://github.com/AndreaGuarracino/spoa-rs\\.git\"")
+                   "path = \"guix-vendor/rust-spoa-rs-0.1.0.6f4f102-checkout\", version = \"0.1.0\"")
+                  ;; ragc-core in [dependencies] and [patch]
+                  (("ragc-core = \\{ git = \"https://github.com/AndreaGuarracino/ragc\", rev = \"e9e4a6f\" \\}")
+                   "ragc-core = { path = \"ragc-workspace/ragc-core\" }")
+                  ;; ragc-common in [patch]
+                  (("ragc-common = \\{ git = \"https://github.com/AndreaGuarracino/ragc\", rev = \"e9e4a6f\" \\}")
+                   "ragc-common = { path = \"ragc-workspace/ragc-common\" }")
+                  ;; onecode
+                  (("git = \"https://github.com/pangenome/onecode-rs\", rev = \"38182c7acf7cccc53509176b1d11001ae6ff2642\"")
+                   "path = \"guix-vendor/rust-onecode-0.1.0.38182c7-checkout\", version = \"0.1.0\"")
+                  ;; tpa
+                  (("git = \"https://github.com/AndreaGuarracino/tpa\", rev = \"301dc3ff53482d993c065217dbcd8abb6ffff2d9\"")
+                   "path = \"guix-vendor/rust-tpa-0.1.0.301dc3f-checkout\", version = \"0.1.0\"")
+                  ;; lib_wfa2
+                  (("git = \"https://github.com/AndreaGuarracino/lib_wfa2\", rev = \"0fe1ebfb7a364226f3d8d7b84b703611168435c6\"")
+                   "path = \"guix-vendor/rust-lib-wfa2-0.1.0.0fe1ebf-checkout\", version = \"0.1.0\"")
+                  ;; tracepoints
+                  (("git = \"https://github.com/AndreaGuarracino/tracepoints\", rev = \"b73773433561fb36f21136776a7297c5877ab593\"")
+                   "path = \"guix-vendor/rust-tracepoints-0.1.0.b737734-checkout\", version = \"0.1.0\"")
+                  ;; handlegraph
+                  (("git = \"https://github.com/chfi/rs-handlegraph\", rev = \"3ac575e4216ce16a16667503a8875e469a40a97a\"")
+                   "path = \"guix-vendor/rust-handlegraph-0.7.0-alpha.9.3ac575e-checkout\", version = \"0.7.0-alpha.9\"")
+                  ;; sweepga
+                  (("git = \"https://github.com/pangenome/sweepga\", rev = \"f5918434c1abadfad594b40392ad7c43e0da4af8\", default-features = false")
+                   "path = \"guix-vendor/rust-sweepga-0.1.1.f591843-checkout\", version = \"0.1.1\", default-features = false")
+                  ;; seqwish
+                  (("git = \"https://github.com/pangenome/seqwish\", rev = \"a781924a1074f8177a24f8caa2b9be07d746acb0\"")
+                   "path = \"guix-vendor/rust-seqwish-0.1.3.a781924-checkout\", version = \"0.1.3\"")
+                  ;; gfasort
+                  (("git = \"https://github.com/pangenome/gfasort\", rev = \"e23f45e\"")
+                   "path = \"guix-vendor/rust-gfasort-0.1.0.e23f45e-checkout\", version = \"0.1.0\""))))
+            (add-before 'build 'fix-vendored-git-deps
+              (lambda _
+                ;; Two different onecode revisions (38182c7 and f531f5b) both
+                ;; declare version 0.1.0, causing a cargo lockfile collision.
+                ;; Bump the older rev (f531f5b) to 0.1.0-alt so cargo can
+                ;; distinguish them.
+                (substitute* "guix-vendor/rust-onecode-0.1.0.f531f5b-checkout/Cargo.toml"
+                  (("version = \"0.1.0\"")
+                   "version = \"0.1.0-alt\""))
+                ;; sweepga has git deps on fastga-rs, onecode, ragc-core
+                (substitute* "guix-vendor/rust-sweepga-0.1.1.f591843-checkout/Cargo.toml"
+                  (("fastga-rs = \\{ git = \"[^\"]*\"[^}]*\\}")
+                   "fastga-rs = { path = \"../rust-fastga-rs-0.1.2.e7a6d93-checkout\", version = \"0.1.2\" }")
+                  (("onecode = \\{ git = \"[^\"]*\"[^}]*\\}")
+                   "onecode = { path = \"../rust-onecode-0.1.0.f531f5b-checkout\", version = \"0.1.0-alt\" }")
+                  (("ragc-core = \\{ git = \"[^\"]*\"[^}]*\\}")
+                   "ragc-core = { path = \"../../ragc-workspace/ragc-core\" }"))
+                ;; tpa has git deps on lib_wfa2 and tracepoints
+                (substitute* "guix-vendor/rust-tpa-0.1.0.301dc3f-checkout/Cargo.toml"
+                  (("lib_wfa2 = \\{ git = \"[^\"]*\"[^}]*\\}")
+                   "lib_wfa2 = { path = \"../rust-lib-wfa2-0.1.0.0fe1ebf-checkout\", version = \"0.1.0\" }")
+                  (("tracepoints = \\{ git = \"[^\"]*\"[^}]*\\}")
+                   "tracepoints = { path = \"../rust-tracepoints-0.1.0.b737734-checkout\", version = \"0.1.0\" }"))
+                ;; tracepoints has git dep on lib_wfa2
+                (substitute* "guix-vendor/rust-tracepoints-0.1.0.b737734-checkout/Cargo.toml"
+                  (("lib_wfa2 = \\{ git = \"[^\"]*\"[^}]*\\}")
+                   "lib_wfa2 = { path = \"../rust-lib-wfa2-0.1.0.0fe1ebf-checkout\", version = \"0.1.0\" }"))
+                ;; fastga-rs has git dep on onecode (the f531f5b rev)
+                (substitute* "guix-vendor/rust-fastga-rs-0.1.2.e7a6d93-checkout/Cargo.toml"
+                  (("onecode = \\{ git = \"[^\"]*\"[^}]*\\}")
+                   "onecode = { path = \"../rust-onecode-0.1.0.f531f5b-checkout\", version = \"0.1.0-alt\" }"))))
+            (add-before 'build 'fix-seqwish-lockfile
+              ;; seqwish's Cargo.lock pins clap 4.5.51 but our vendor has
+              ;; 4.5.60.  Delete its lockfile so cargo metadata succeeds.
+              (lambda _
+                (delete-file
+                 "guix-vendor/rust-seqwish-0.1.3.a781924-checkout/Cargo.lock")))
+            (add-before 'build 'patch-home-msrv
+              ;; home 0.5.12 declares rust-version = "1.88" but Guix ships
+              ;; rustc 1.85.1.
+              (lambda _
+                (substitute* "guix-vendor/rust-home-0.5.12.tar.gz/Cargo.toml"
+                  (("rust-version = \"[^\"]*\"\n") ""))))
+            (add-before 'build 'patch-is-multiple-of
+              ;; Several crates use is_multiple_of (stabilized in Rust 1.87)
+              ;; but Guix ships rustc 1.85.1.  Replace with modulo check.
+              (lambda _
+                (for-each
+                 (lambda (file)
+                   (substitute* file
+                     ;; Negated: !expr.is_multiple_of(val) -> expr % val != 0
+                     (("!([a-z_.()]+)\\.is_multiple_of\\(([^)]+)\\)" all expr val)
+                      (string-append expr " % " val " != 0"))
+                     ;; Positive: expr.is_multiple_of(val) -> expr % val == 0
+                     (("\\.is_multiple_of\\(([^)]+)\\)" all val)
+                      (string-append " % " val " == 0"))))
+                 (append
+                  (find-files "src" "\\.rs$")
+                  (find-files "guix-vendor/rust-vers-vecs-1.9.0.tar.gz" "\\.rs$")
+                  (find-files "guix-vendor/rust-rust-htslib-1.0.0.tar.gz" "\\.rs$")))))
+            (add-before 'build 'patch-lib-wfa2-use-system
+              ;; Replace lib_wfa2 build.rs to link against system wfa2-lib-static
+              ;; instead of building WFA2-lib from source.
+              (lambda _
+                (chmod "guix-vendor/rust-lib-wfa2-0.1.0.0fe1ebf-checkout/build.rs" #o644)
+                (call-with-output-file
+                    "guix-vendor/rust-lib-wfa2-0.1.0.0fe1ebf-checkout/build.rs"
+                  (lambda (port)
+                    (display
+                     (string-append
+                      "fn main() {\n"
+                      "    println!(\"cargo:rustc-link-lib=static=wfa\");\n"
+                      "    println!(\"cargo:rustc-link-lib=gomp\");\n"
+                      "    println!(\"cargo:rustc-link-search=native="
+                      #$(file-append wfa2-lib-static "/lib") "\");\n"
+                      "}\n")
+                     port)))
+                ;; Patch bindings_wfa.rs: replace cast_signed/cast_unsigned
+                ;; (unstable until Rust 1.87) with plain `as` casts.
+                (substitute*
+                    "guix-vendor/rust-lib-wfa2-0.1.0.0fe1ebf-checkout/src/bindings_wfa.rs"
+                  ;; u32::cast_signed(expr as u32) -> ((expr as u32) as i32)
+                  (("u32::cast_signed\\(self\\._bitfield_1\\.get\\(0usize, 24u8\\) as u32\\)")
+                   "((self._bitfield_1.get(0usize, 24u8) as u32) as i32)")
+                  ;; Multiline u32::cast_signed(<...>::raw_get(...)
+                  (("u32::cast_signed\\(<")
+                   "((<")
+                  (("            \\) as u32\\)")
+                   "            ) as u32) as i32)")
+                  ;; i32::cast_unsigned(val) -> (val as u32)
+                  (("i32::cast_unsigned\\(val\\)")
+                   "(val as u32)")
+                  (("i32::cast_unsigned\\(_flags2\\)")
+                   "(_flags2 as u32)"))))
+            (add-before 'build 'patch-include-paths-to-spoa
+              (lambda _
+                (substitute* "guix-vendor/rust-spoa-rs-0.1.0.6f4f102-checkout/build.rs"
+                  (("spoa/include") #$(file-append spoa "/include"))
+                  (("^ *out_dir\\.display.*$") "")
+                  (("\\{\\}/build/lib\",") #$(file-append spoa "/lib\""))))))))
+      (native-inputs (list pkg-config cmake-minimal clang))
+      (inputs (cons* spoa
+                     wfa2-lib-static
+                     zlib
+                     (list zstd "lib")
+                     (cargo-inputs 'impg #:module '(gn packages pangenome-rust))))
+      (home-page "https://github.com/pangenome/impg")
+      (synopsis "Tool to extract and compute graphs of sequences and alignments")
+      (description "IMplicit Pangenome Graph (impg) is a tool that takes in
+sequences and their relative alignments and extracts sections of the sequences
+and alignments for analysis.  It can also compute graphs for the sequences.")
+      (license license:expat))))
diff --git a/gn/packages/pangenome.scm b/gn/packages/pangenome.scm
index 5c5ef00..93d66d0 100644
--- a/gn/packages/pangenome.scm
+++ b/gn/packages/pangenome.scm
@@ -1,14 +1,29 @@
-;; Pangenome module
+;; Pangenome module -- pangenome tools and their dependencies
 
 (define-module (gn packages pangenome)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix gexp)
   #:use-module (guix build-system cargo)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bioinformatics)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages golang-xyz)
+  #:use-module (gnu packages golang-maths)
+  #:use-module (gnu packages image-processing)
+  #:use-module (gnu packages maths)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (past-crates packages crates-io)
   #:use-module (gn packages crates-io))
 
-
 (define-public gfautil
   (package
     (name "gfautil")
@@ -38,3 +53,379 @@
      "This package provides command line tools for working with @acronym{GFA,
 Graphical Fragment Assembly} files and related formats.")
     (license license:expat)))
+
+(define-public safestringlib
+  (let ((commit "39219363f0497d04c710a1e11acdeb6d18d4b2f5")
+        (revision "0"))
+    (package
+      (name "safestringlib")
+      (version (git-version "1.2.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/intel/safestringlib")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1b5s2b19hybr2r0mxch5x5f0gzy77w1xcfp2js4rprqr8dimppak"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list #:tests? #f
+             #:make-flags
+             #~(list (string-append "CC=" #$(cc-for-target)))
+             #:phases
+             #~(modify-phases %standard-phases
+                 (delete 'configure)
+                 ;; -DSTDC_HEADERS tells safeclib_private.h to include
+                 ;; stdlib.h/ctype.h unconditionally (normally set by autoconf).
+                 (add-before 'build 'fix-cflags
+                   (lambda _
+                     (substitute* "makefile"
+                       (("-Wformat-security")
+                        "-Wformat-security -DSTDC_HEADERS"))))
+                 (add-before 'build 'make-obj-dir
+                   (lambda _
+                     (mkdir-p "obj")))
+                 (replace 'build
+                   (lambda* (#:key make-flags #:allow-other-keys)
+                     (apply invoke "make" "libsafestring.a" make-flags)))
+                 (replace 'install
+                   (lambda _
+                     (mkdir-p (string-append #$output "/lib"))
+                     (mkdir-p (string-append #$output "/include"))
+                     (install-file "libsafestring.a"
+                                   (string-append #$output "/lib"))
+                     (for-each (lambda (h)
+                                 (install-file h (string-append #$output "/include")))
+                               (append
+                                (find-files "include" "\\.h$")
+                                (find-files "safeclib" "^safe_.*\\.h$"))))))))
+      (home-page "https://github.com/intel/safestringlib")
+      (synopsis "Intel Safe String Library")
+      (description
+       "Safestringlib is derived from the Safe C Library by Cisco Systems.
+It provides replacements for dangerous C string and memory functions that
+perform bounds checking and return meaningful error codes.")
+      (license license:expat))))
+
+(define-public bwa-mem2
+  (package
+    (name "bwa-mem2")
+    (version "2.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/bwa-mem2/bwa-mem2")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "01dhryf6nbdicrvbdk4mrdypm0l9vqh1qis9qp0pdh8qbxgh060c"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f
+           #:make-flags
+           #~(list (string-append "CC=" #$(cc-for-target))
+                   (string-append "CXX=" #$(cxx-for-target)))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'use-installed-safestringlib
+                 (lambda _
+                   (let ((ssl #$(this-package-input "safestringlib")))
+                     (substitute* "Makefile"
+                       ;; Replace include/lib paths with installed safestringlib.
+                       (("-Iext/safestringlib/include")
+                        (string-append "-I" ssl "/include"))
+                       (("-Lext/safestringlib/ -lsafestring")
+                        (string-append "-L" ssl "/lib -lsafestring"))
+                       (("-Lext/safestringlib -lsafestring")
+                        (string-append "-L" ssl "/lib -lsafestring"))
+                       ;; Strip the "cd ext/safestringlib && make clean" from
+                       ;; the multi target's cleanup lines.
+                       ((" cd ext/safestringlib/ && \\$\\(MAKE\\) clean;")
+                        "")
+                       ;; Remove $(SAFE_STR_LIB) from EXE prerequisites.
+                       (("\\$\\(BWA_LIB\\) \\$\\(SAFE_STR_LIB\\) ")
+                        "$(BWA_LIB) ")
+                       ;; Remove the $(SAFE_STR_LIB) build rule (two lines).
+                       (("\\$\\(SAFE_STR_LIB\\):\n\tcd ext/safestringlib.*\n")
+                        "")
+                       ;; Remove safestringlib from the clean target.
+                       (("\tcd ext/safestringlib/ && \\$\\(MAKE\\) clean\n")
+                        "")))))
+               (delete 'configure)
+               (replace 'install
+                 (lambda _
+                   (mkdir-p (string-append #$output "/bin"))
+                   (for-each (lambda (f)
+                               (install-file f (string-append #$output "/bin")))
+                             (find-files "." "^bwa-mem2" #:directories? #f)))))))
+    (inputs (list safestringlib zlib))
+    ;; Tests (fmi_test, smem2_test, bwt_seed_strategy_test, sa2ref_test,
+    ;; xeonbsw) require a BWA-MEM2 genome index and reads; no standalone
+    ;; test data is shipped upstream.
+    (supported-systems '("x86_64-linux"))
+    (home-page "https://github.com/bwa-mem2/bwa-mem2")
+    (synopsis "Next generation of the BWA-MEM short read aligner")
+    (description
+     "BWA-MEM2 is the next version of the BWA-MEM algorithm in the BWA
+software package.  It produces alignment identical to BWA-MEM and is
+approximately 1.3-3.1x faster depending on the use case, the reference
+genome, and the query set.  The tool runs on x86 hardware and builds
+multiple SIMD-optimized variants (SSE4.1, SSE4.2, AVX, AVX2, AVX512BW)
+with a runtime dispatcher.")
+    (license license:expat)))
+
+(define-public miniprot
+  (package
+    (name "miniprot")
+    (version "0.18")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/lh3/miniprot")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "093pgw9cm2xdh9d3wv2311cd8fxj2k6rk5gw72zjyq9j7g5dshm3"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:make-flags
+           #~(list (string-append "CC=" #$(cc-for-target)))
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure)
+               (replace 'check
+                 (lambda _
+                   (invoke "./miniprot"
+                           "test/DPP3-hs.gen.fa.gz"
+                           "test/DPP3-mm.pep.fa.gz")))
+               (replace 'install
+                 (lambda _
+                   (mkdir-p (string-append #$output "/bin"))
+                   (mkdir-p (string-append #$output "/share/man/man1"))
+                   (install-file "miniprot"
+                                 (string-append #$output "/bin"))
+                   (install-file "miniprot.1"
+                                 (string-append #$output "/share/man/man1")))))))
+    (inputs (list zlib))
+    (home-page "https://github.com/lh3/miniprot")
+    (synopsis "Protein-to-genome aligner")
+    (description
+     "Miniprot aligns a protein sequence against a genome with affine gap
+penalty, splicing and frameshift.  It is primarily designed for annotating
+protein-coding genes in a new genome using related genomes as references.")
+    (license license:expat)))
+
+(define-public pangene
+  (package
+    (name "pangene")
+    (version "1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/lh3/pangene")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "04vwriwa32q6gnrppn98mqvck8pr2s7ld88dlmg09j7881x584nh"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:make-flags
+           #~(list (string-append "CC=" #$(cc-for-target)))
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure)
+               (replace 'check
+                 (lambda _
+                   (invoke "./pangene" "test/C4/21GRCh38-renamed.paf.gz"
+                           "test/C4/22CHM13-renamed.paf.gz")))
+               (replace 'install
+                 (lambda _
+                   (mkdir-p (string-append #$output "/bin"))
+                   (mkdir-p (string-append #$output "/share/man/man1"))
+                   (install-file "pangene"
+                                 (string-append #$output "/bin"))
+                   (install-file "pangene.1"
+                                 (string-append #$output "/share/man/man1")))))))
+    (inputs (list zlib))
+    (home-page "https://github.com/lh3/pangene")
+    (synopsis "Construct pangenome gene graphs")
+    (description
+     "Pangene constructs a pangenome gene graph from protein-to-genome
+alignments.  It takes PAF files as input and outputs a graph in GFA format,
+suitable for downstream pangenome analysis.")
+    (license license:expat)))
+
+(define-public wally
+  (package
+    (name "wally")
+    (version "0.7.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/tobiasrausch/wally")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1p0jz8m7src0lfznc8kpa0ra9i2362d35ka69457va957y1klm9v"))))
+    (build-system gnu-build-system)
+    (native-inputs (list pkg-config))
+    (inputs (list boost htslib opencv zlib xz bzip2))
+    (arguments
+     (list #:tests? #f
+           #:make-flags
+           #~(list (string-append "CXX=" #$(cxx-for-target))
+                   ;; Point to installed htslib; Makefile uses EBROOTHTSLIB as
+                   ;; prefix (EasyBuild convention), patched below to append
+                   ;; /include and /lib.
+                   (string-append "EBROOTHTSLIB=" #$(this-package-input "htslib"))
+                   ;; Non-default value prevents in-tree opencv submodule build.
+                   "OPENCVSRC=/dev/null"
+                   (string-append "prefix=" #$output))
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure)
+               (add-after 'unpack 'fix-makefile
+                 (lambda _
+                   (substitute* "Makefile"
+                     ;; EBROOTHTSLIB is used bare as an include/lib prefix;
+                     ;; installed htslib has headers in include/ and libs in lib/.
+                     (("-isystem \\$\\{EBROOTHTSLIB\\}")
+                      "-isystem ${EBROOTHTSLIB}/include")
+                     (("-L\\$\\{EBROOTHTSLIB\\}")
+                      "-L${EBROOTHTSLIB}/lib")
+                     ;; Remove rpath flags; Guix manages rpaths via ld-wrapper.
+                     ((" -Wl,-rpath,\\$\\{EBROOTHTSLIB\\}") "")
+                     ((" -Wl,-rpath,\\$\\{OPENCV\\}/lib/") "")
+                     ((" -Wl,-rpath,\\$\\{OPENCV\\}/lib64/") "")
+                     ;; boost::system became header-only in boost >= 1.69;
+                     ;; libboost_system is no longer installed.
+                     ((" -lboost_system") "")
+                     ;; Remove in-tree opencv PKG_CONFIG_PATH override so the
+                     ;; Guix build environment's PKG_CONFIG_PATH finds opencv4.
+                     (("export PKG_CONFIG_PATH=\\$\\{PWD\\}/src/ocv/lib/pkgconfig/:\\$\\{PWD\\}/src/ocv/lib64/pkgconfig/:\\$\\{PKG_CONFIG_PATH\\} && ")
+                      "")))))))
+    ;; No upstream test suite; the tool requires BAM/CRAM input files.
+    (home-page "https://github.com/tobiasrausch/wally")
+    (synopsis "Read alignment visualization tool")
+    (description
+     "Wally visualizes read alignments stored in BAM/CRAM format.  It
+produces alignment plots in PNG format and supports region plots, dotplots,
+and heatmaps for structural variant and genome assembly analysis.")
+    (license license:bsd-3)))
+
+(define-public meryl
+  (package
+    (name "meryl")
+    (version "1.4.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/marbl/meryl")
+                    (commit (string-append "v" version))
+                    (recursive? #t)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "14mvnhjimhh0c151318v015l151bf9faq2izizw4vf9n8fkkk8i0"))))
+    (build-system gnu-build-system)
+    (native-inputs (list perl which))
+    (arguments
+     (list #:tests? #f
+           #:make-flags
+           #~(list (string-append "CC=" #$(cc-for-target))
+                   (string-append "CXX=" #$(cxx-for-target)))
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure)
+               (add-before 'build 'chdir-src
+                 (lambda _ (chdir "src")))
+               (replace 'install
+                 (lambda _
+                   ;; Build puts binaries in ../build/bin/.
+                   (let ((bin (string-append #$output "/bin")))
+                     (mkdir-p bin)
+                     (for-each (lambda (f)
+                                 (install-file f bin))
+                               (find-files "../build/bin" "."))))))))
+    (home-page "https://github.com/marbl/meryl")
+    (synopsis "Genomic k-mer counter and set operations")
+    (description
+     "Meryl is a genomic k-mer counter and sequence utility.  It counts
+k-mers in genomic sequences and supports set operations (union, intersect,
+difference) on k-mer databases.")
+    (license (list license:gpl2
+                   license:bsd-2
+                   license:bsd-3))))
+
+(define-public kfilt
+  (let ((commit "ace6888d78156d3bd3a42bd3b8b31dbb57ee6dbe")
+        (revision "0"))
+    (package
+      (name "kfilt")
+      (version (git-version "0.1.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/davidebolo1993/kfilt")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "02j12bir1v3v2kpld0a628kfdcmn7py6qfqggf7vlvglhk33yqx4"))))
+      (build-system go-build-system)
+      (arguments
+       (list #:import-path "github.com/davidebolo1993/kfilt"
+             #:install-source? #f))
+      (inputs (list go-github-com-spf13-cobra
+                    go-github-com-cheggaaa-pb-v3))
+      (home-page "https://github.com/davidebolo1993/kfilt")
+      (synopsis "K-mer based sequence filtering tool")
+      (description
+       "Kfilt builds k-mer indices from genomic sequences and filters reads
+based on k-mer matches.  It is used in the cosigt pipeline to filter
+unmapped reads using unique k-mers from pangenome graph alleles.")
+      (license license:expat))))
+
+(define-public cosigt
+  (package
+    (name "cosigt")
+    (version "0.1.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/davidebolo1993/cosigt")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0hcmk520qs3iihdvzdyj46kf2gpqvqdr02klrlzzdjs7z5g1fmq4"))))
+    (build-system go-build-system)
+    (arguments
+     (list #:import-path "github.com/davidebolo1993/cosigt"
+           #:install-source? #f
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'install-pipeline
+                 (lambda _
+                   (let ((share (string-append #$output "/share/cosigt")))
+                     (copy-recursively
+                      "src/github.com/davidebolo1993/cosigt/cosigt_smk"
+                      share)))))))
+    (inputs (list go-github-com-akamensky-argparse
+                  go-gonum-org-v1-gonum))
+    (home-page "https://github.com/davidebolo1993/cosigt")
+    (synopsis "Cosine similarity-based structural haplotype genotyper")
+    (description
+     "Cosigt (COsine SImilarity-based GenoTyper) assigns structural
+haplotypes to sequenced samples using pangenome graphs.  It includes a
+Snakemake pipeline (@file{share/cosigt/}) and a genotyping binary.  Pipeline
+tools needed at runtime: snakemake, minimap2, samtools, bedtools, bwa-mem2,
+odgi, gafpack, gfainject, impg, pggb, meryl, kfilt, wally, miniprot, and
+pangene.")
+    (license license:expat)))
diff --git a/gn/packages/patches/do-not-build-cplusplus-spoa.patch b/gn/packages/patches/do-not-build-cplusplus-spoa.patch
new file mode 100644
index 0000000..b9afb9a
--- /dev/null
+++ b/gn/packages/patches/do-not-build-cplusplus-spoa.patch
@@ -0,0 +1,19 @@
+diff --git a/build.rs b/build.rs
+index 3f0566a..a607d9d 100644
+--- a/build.rs
++++ b/build.rs
+@@ -3,14 +3,6 @@ use std::fs::canonicalize;
+ use std::path::PathBuf;
+ 
+ fn main() {
+-    let out_dir = cmake::Config::new("spoa")
+-        //.uses_cxx11() // Deprecated
+-        .define("spoa_install", "OFF")
+-        .define("spoa_build_exe", "OFF")
+-        .define("spoa_build_tests", "OFF")
+-        .build_target("spoa")
+-        .build();
+-
+     println!(
+         "cargo:rustc-link-search=native={}/build/lib",
+         out_dir.display()