trim -minimal-ghc closure: build happy/alex with the shell's GHC
The `withGHCTooling` block in dynamic.nix sourced `happy` and `alex` from nixpkgs's `pkgs.haskellPackages`, which builds them with a different GHC than the shell's `compiler` (currently ghc-9.10.3 in nixpkgs vs ghc-9.8.4 in our shell). The Haskell library outputs of both packages live under `lib/ghc-<other-ver>/lib/*.dylib`; their .dylib path strings anchor the foreign GHC in the closure via Nix's reference scanner. On aarch64-darwin this dragged in ghc-9.10.3 (1.40 GB) and ghc-9.10.3-doc (753 MB) — ~2.15 GB of essentially-unused payload. Switch to haskell.nix's `tool` builder (same pattern as cross-js.nix and cross-windows.nix), which builds happy/alex with the shell's `compiler-nix-name`. The resulting library outputs reference the GHC that's already in the closure rather than dragging in a second one. While here: * swap `git` → `gitMinimal` — drops the heavyweight perl-modules and git-doc that aren't useful inside the dev shell (~150 MB cascade). * tool-map.nix: drop `inherit cabalProjectLocal` from happy/alex. They're standard mainline packages and build cleanly from regular hackage; the inherited cabalProjectLocal pinned a head.hackage SHA that was stale and broke fresh evaluations of `(tool "happy")` / `(tool "alex")`. While there, bump happy 1.20.1.1 → 2.1.7 and alex 3.2.7.3 → 3.5.4.0 to match what nixpkgs.haskellPackages was shipping previously, so users see no behavioural change. Measured on aarch64-darwin (ghc98-minimal-ghc): before: 6.12 GB / 228 paths after : 4.00 GB / 196 paths saved : 2.12 GB (34.7% smaller) Top removed paths: ghc-9.10.3 1399 MB ghc-9.10.3-doc 753 MB git-2.51.2 49 MB git-2.51.2-doc 15 MB perl5.40.0-SSLeay/Mozilla/IO-Socket-SSL (gitMinimal cascade) Verified inside the patched shell: $ ghc --version # 9.8.4 $ cabal --version # 3.17.0.0 $ happy --version # 2.1.7 (same as before) $ alex --version # 3.5.4.0 (same as before) $ git --version # 2.51.2