{ description = "Haskell Project Template"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; treefmt.url = "github:numtide/treefmt-nix"; }; outputs = inputs @ { self, nixpkgs, ... }: let inherit (nixpkgs) lib; systems = ["x86_64-linux"]; forAllSystems = f: lib.genAttrs systems ( system: f { pkgs = import nixpkgs { inherit system; }; } ); treefmtEval = forAllSystems ({pkgs}: inputs.treefmt.lib.evalModule pkgs ./flake/treefmt.nix); in { packages = forAllSystems ( {pkgs}: { default = pkgs.callPackage ./flake/package.nix {}; hetch = self.packages.${pkgs.system}.default; } ); devShells = forAllSystems ( {pkgs}: { default = pkgs.callPackage ./flake/shell.nix {}; } ); formatter = forAllSystems ({pkgs}: treefmtEval.${pkgs.system}.config.build.wrapper); }; }