{ description = "Haskell Project Template"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; treefmt.url = "github:numtide/treefmt-nix"; }; outputs = inputs@{ 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 { }; } ); devShells = forAllSystems ( { pkgs }: { default = pkgs.callPackage ./flake/shell.nix { }; } ); formatter = forAllSystems ({ pkgs }: treefmtEval.${pkgs.system}.config.build.wrapper); }; }