{ description = "A very basic Haskell flake"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; outputs = { self, nixpkgs, ...}: let supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; forAllSystems = nixpkgs.lib.genAttrs supportedSystems; pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system}); stack-wrapped = pkgs.symlinkJoin { name = "stack"; # will be available as the usual `stack` in terminal paths = [ pkgs.stack ]; buildInputs = [ pkgs.makeWrapper ]; postBuild = '' wrapProgram $out/bin/stack \ --add-flags "\ --no-nix \ --system-ghc \ --no-install-ghc \ " ''; }; in { devShells = forAllSystems (system: { default = pkgs.${system}.callPackage ./shell.nix {}; LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath self.default.buildInputs; }); }; }