{ description = "tricu"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; packageName = "tricu"; haskellPackages = pkgs.haskellPackages; hsLib = pkgs.haskell.lib; tricuPackage = haskellPackages.callCabal2nix packageName self {}; tricuTests = hsLib.overrideCabal tricuPackage (old: { doCheck = true; configureFlags = (old.configureFlags or []) ++ [ "--enable-tests" ]; checkPhase = '' runHook preCheck ./Setup test tricu-tests --show-details=direct runHook postCheck ''; }); customGHC = haskellPackages.ghcWithPackages (hpkgs: with hpkgs; [ megaparsec ]); in { packages.${packageName} = tricuPackage; packages.default = tricuPackage; packages.test = tricuTests; checks.${packageName} = tricuTests; checks.default = tricuTests; defaultPackage = self.packages.${system}.default; devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ haskellPackages.cabal-install haskellPackages.ghc-events haskellPackages.ghcid customGHC upx ]; inputsFrom = [ tricuPackage ]; }; }); }