{ description = "A basic Haskell flake"; # To be used in conjunction with cabal2nix inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils}: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; compiler = throw "add compiler version here"; in { packages = { default = pkgs.haskell.packages.${compiler}.mkDerivation rec { pname = throw "insert haskell package name here\nderived from the .cabal file"; version = "0.1.0.0"; src = ./.; isLibrary = false; isExecutable = true; executableHaskellDepends = with pkgs.haskellPackages; [ base ]; license = pkgs.lib.licenses.agpl3Only; mainProgram = pname; }; }; devShells.default = pkgs.mkShell { buildInputs = with pkgs.haskellPackages; [ base cabal-install ghc haskell-language-server cabal2nix ]; }; }); }