{ description = "Horizon Haskell: Moon Base"; inputs = { horizon-platform.url = "git+https://gitlab.horizon-haskell.net/package-sets/horizon-platform"; lint-utils.url = "git+https://gitlab.homotopic.tech/nix/lint-utils"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; }; outputs = inputs@ { self , flake-utils , horizon-platform , lint-utils , nixpkgs , ... }: flake-utils.lib.eachSystem [ "aarch64-darwin" "x86_64-darwin" "x86_64-linux" ] (system: let pkgs = import nixpkgs { inherit system; }; in with pkgs.lib; let overrides = composeManyExtensions [ (import ./overlay.nix { inherit pkgs; }) ]; legacyPackages = horizon-platform.legacyPackages.${system}.extend overrides; packages = filterAttrs (_: isDerivation) legacyPackages; horizon-hoogle = pkgs.writers.writeBashBin "horizon-hoogle" '' ${legacyPackages.ghcWithHoogle (p: attrValues (packages // { hoogle = null; }))}/bin/hoogle server --local ''; in { apps = { run-hoogle = { type = "app"; program = "${horizon-hoogle}/bin/horizon-hoogle"; }; }; checks = with lint-utils.outputs.linters.${system}; { dhall-format = dhall-format { src = self; }; nixpkgs-fmt = nixpkgs-fmt { src = self; find = "flake.nix"; }; }; inherit legacyPackages; inherit packages; }); }